【问题标题】:Full-text Index stop list for Persian language波斯语全文索引停止列表
【发布时间】:2020-06-03 05:41:55
【问题描述】:

我需要自定义波斯语全文搜索。并为此语言自定义停止/噪音词和同义词。

我的 SQL Server 版本是 2016 并安装了全文搜索。

【问题讨论】:

标签: sql sql-server sql-server-2008 sql-server-2012 full-text-search


【解决方案1】:

对于在 SQL Server 停止列表、全文目录等中使用波斯语,我们应该使用 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 很多字

Download Persian or Farsi stoplist 为标准 单词

【讨论】:

    【解决方案2】:

    我终于找到了解决办法。

    默认情况下,当您创建全文索引时,它会与系统停止列表相关联。英语的默认停止列表超过 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

    【讨论】:

    • 我检查了一下,很好。我在下面的回答中对这种体验提出了建议。祝你一切顺利。
    猜你喜欢
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多