Dynamics 365-Full Text Index on Stopwords

以前写了一篇关于Online Relevance Search的博文,而后又看到罗勇大神关于Full Text Index的博文:Dynamics CRM中一个查找字段引起的【血案】,因而准备写点关于Full Text Index Stopwords相关的介绍,也算是对Dynamics 365 Search方式相关的一个知识点记录。html

关于如何开启Dynamics 365 Full Text Index,这个就很少加赘述了,基础功能在网上仍是很容易找到的,在Enable Full Text Index的时候,CRM会有提示,大体意思是要等24小时才能生效。Maintenance Job如何修改执行时间,能够参考罗勇大神的文章:sql

update MSCRM_CONFIG.dbo.ScaleGroupOrganizationMaintenanceJobs 
set NextRunTime = 'UTC时间'
where OperationType = 15

注意RunTIme是UTC时间,能够大大减小Maintenance Job的等待时间,要不默认是会24小时执行一次。数据库

当Full Text Index功能彻底启用以后,咱们固然会火烧眉毛地想要去尝试下新功能的效果,通常的搜索问题不大,可是有时候,你会发现,一些做为过滤条件的词语,就是搜索不到结果。例如,如今有一个account “Mr. To”优化

当用to做为查询条件的时候,是搜索不出这个account的ui

而致使这个问题的缘由就是Stopwords in Stoplist。spa

当Full Text Index功能开启的时候,会有一个系统Stoplist做用于CRM Organization DB,做用于Full Text Index涉及到的Entity,也就是DB的Tables。3d

这个系统Stoplist来自于系统数据库Resource Database,一个在Management Studio上不可见的Database,可是在SQL安装目录下,能够找到它的数据库文件code

这个数据库暴露出来的内容是ReadOnly的。htm

既然咱们知道有Stoplist这个功能的存在,那么咱们固然会想到,是否是能够建立本身的过滤词组来知足特定的业务需求呢?答案是确定的。blog

1. 建立Stoplist

CRM Database -> Storage -> Full Text Stoplist -> New Full-Text Stoplist

在弹出界面,填上Stoplist的名字,而后选择Stoplist如何建立

这里的建议是“Create from the system Stoplist”,出于两方面的考虑:首先并非全部的stopwords,业务逻辑上都不须要;其次是有些words是公共的,在使用的时候是有优化的。

建立完成以后,咱们先来确认下word

2. Remove Stopword

右键Stoplist “demo”,点击Properties

选择“Delete stop word”,而后填写要去掉的word,以及语言

以后再执行下查询

3. 设置Stoplist做用于Account表

ALTER FULLTEXT INDEX ON dbo.Accountbase SET STOPLIST = demo;

4. Rebuild CRMFullTextCatalog

这里有可能遇到的问题是Rebuild是灰掉的,可是能够选择上一层“Full Text Catalogs”,右键Rebuild

5. 效果

IIS reset以后,查询效果

 

 Stoplist 官方资料:Configure and Manage Stopwords and Stoplists for Full-Text Search

相关文章
相关标签/搜索