使用一个字段

时间:2015-05-07 18:12:32

标签: indexing solr multilingual

我们目前的生产指数是1.5 TB,有3个碎片。目前我们有以下字段类型:

<fieldType name="text_ngram" class="solr.TextField" positionIncrementGap="100">
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.CustomNGramFilterFactory" minGramSize="3" maxGramSize="30" preserveOriginal="true"/>
</analyzer>
</fieldType>

以上字段类型适用于美国和英语客户。现在我们有一些新的中文和日语客户端,所以在谷歌搜索后 -

http://www.basistech.com/indexing-strategies-for-multilingual-search-with-solr-and-rosette/ https://docs.lucidworks.com/display/lweug/Multilingual+Indexing+and+Search

对于多语种索引的最佳方法,似乎每种方法都有优点/缺点。然后我尝试使用单一字段方法进行RnD,这是我的新字段类型:

<fieldType name="text_multi" class="solr.TextField" positionIncrementGap="100">
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.CJKWidthFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.CJKBigramFilterFactory"/>
</analyzer>
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.CJKWidthFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.CJKBigramFilterFactory"/>
<filter class="solr.CustomNGramFilterFactory" minGramSize="3" maxGramSize="30" preserveOriginal="true"/>
</analyzer>
</fieldType>

我保留了相同的标记器,只更改了过滤器。它适用于所有现有的英文文档搜索/用例以及中文/日文文档的新用例。

  • 现在我向Solr专家/大师提出以下问题:

    1. 这是一个正确的方法吗?或者我错过了什么?
    2. 你能给我举个例子吗? 以上新的字段类型?具有示例的用例/场景将是非常的 有帮助的。
    3. 未来不同的客户也会有任何问题 吗?

请提供一些指导或最佳策略。

0 个答案:

没有答案