【发布时间】:2021-05-15 02:53:06
【问题描述】:
Solr 在托管架构中为不同语言(如英语、法语、日语等)提供了一些现成的数据类型。
我们使用通用数据类型“text_general”进行字段声明,并使用 stopwards.txt 进行停用词过滤。
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" maxGramSize="20" minGramSize="1"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.SynonymGraphFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
在将数据同步到 Solr 核心时,我们会在诸如法语、英语、德语 etch 等字段中导入不同语言的文本。
我的问题是我们应该在同一个“stopwards.txt”文件中使用所有不同的语言停用词还是 solr 如何使用不同的语言停用词?
【问题讨论】:
-
您需要使用相关设置定义特定于每种语言的字段 - 您可能也不希望将相同的同义词应用于每种语言;停用词也是如此。在某些情况下,您可能还需要特定于语言的词干。定义
fieldname_en、fieldname_jp等 -
在标准的 Solr 安装中,已经定义了特定于语言的字段(例如 text_en 和 text_cjk),并且每个字段都使用不同的分析器、停用词和同义词,您可以通过
curl http://your-solr/solr/your-core/schema/fieldtypes/text_cjk和 @ 看到这一点987654325@