波斯语全文索引停用表

Full-text Index stop list for Persian language

我需要自定义波斯语的全文搜索。并为此语言自定义 Stop/Noise 个单词和同义词。

我的SQL服务器版本是2016,安装了全文搜索

终于找到解决办法了。

默认情况下,当您创建全文索引时,它与系统非索引字表相关联。默认的非索引字表有超过 150 个英语单词。

configure-and-manage-stopwords-and-stoplists-for-full-text-search

full-text-search-stoplist-and-stopword

打开这个文件然后添加你的话

[SQL 服务器路径]\MSSQL13.MSSQLSERVER\MSSQL\FTData\tsglobal.xml

<XML ID="Microsoft Search Thesaurus">
<thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
    <expansion>
        <sub>Internet Explorer</sub>
        <sub>IE</sub>
        <sub>IE5</sub>
    </expansion>
    <expansion>
        <sub>سازگار سیستم خاورمیانه</sub>
        <sub>ستیران</sub>
    </expansion>
        <expansion>
        <sub>آبجی</sub>
        <sub>خواهر</sub>
    </expansion>
    <replacement>
        <pat>NT5</pat>
        <pat>W2K</pat>
        <sub>Windows 2000</sub>
    </replacement>
    <expansion>
        <sub>run</sub>
        <sub>jog</sub>
    </expansion>
</thesaurus>

然后执行这个SQL命令。

EXEC sys.sp_fulltext_load_thesaurus_file 0;  

要创建自定义停止列表,只需使用以下代码:

CREATE FULLTEXT STOPLIST [PersianStopList]

然后添加您的停用列表

    ALTER FULLTEXT STOPLIST [PersianStopList] ADD 'از' LANGUAGE 'Neutral';

完整的波斯语信息: https://www.dotnettips.info/courses/topics/13#/page/1/date/desc

要在 SQL 服务器停止列表、全文目录等中使用波斯语,我们应该使用 Neutral。如果你不在目录中使用 Neutral 我建议你将它更改为 Neutral,有时它是空的,如下所示:

您的问题通过此查询解决任何语言:

--View Stoplist word
SELECT w.stoplist_id,
   l.name,
   w.stopword,
   w.language
FROM sys.fulltext_stopwords AS w
   INNER JOIN sys.fulltext_stoplists AS l
     ON w.stoplist_id = l.stoplist_id;

-- Stopwords list
CREATE FULLTEXT STOPLIST StopListCustome;
GO

-- Add a stopword
ALTER FULLTEXT STOPLIST StopListCustome
    ADD 'SQL' LANGUAGE 'English';
GO
ALTER FULLTEXT STOPLIST StopListCustome 
    ADD 'از' LANGUAGE 'Neutral';

github

上查找此文档和代码

您还可以使用以下列表添加波斯语和英语的任何停用列表文本:

Download English stoplist

Download Persian or Farsi stoplist for many words

Download Persian or Farsi stoplist for standard words