solr查询分析器下划线

时间:2013-09-27 10:22:06

标签: solr query-analyzer

我在文档字段中使用fieldtype作为text_ws来强调分隔和驼峰大小写值(eq“SimplyShopping_Rediff”)。

<fieldType name="text_ws" class="solr.TextField"
    positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.PatternTokenizerFactory" pattern=";" />
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.PatternTokenizerFactory" pattern=";" />
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
</fieldType>

有没有办法可以在不重新索引的情况下更改查询分析器,以便我可以搜索Shopping或Rediff。

1 个答案:

答案 0 :(得分:0)

不,在你的情况下没有。

您定义的fieldType使用模式;来标记您的文本。标记文本意味着将单词流分割为索引标记(也称为术语或单词)。

坚持您的示例SimplyShopping_Rediff,其中没有;,因此整个文本被识别为一个令牌,并且将被视为您的索引中的该令牌。您可以使用大写,小写,词干或过滤它,但不能再拆分它。

即使您要更改fieldType,也要在查询时将其标记为您想要的方式。索引中的标记仍然存在缺陷,因为它们在索引时已经被错误地标记。因此,您的搜索的新的正确标记化术语将在索引中不会出现任何内容。索引中没有命中,没有搜索结果。

在solr参考指南中a good section about Analyzers, Tokenizers and Filters。由于重建整个索引可能非常昂贵,我建议先阅读此内容。