1

我在字段类型为 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 上进行搜索。

4

1 回答 1

0

不,在你的情况下不是。

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

与您的示例保持一致,SimplyShopping_Rediff其中没有任何;内容,因此整个文本被识别为一个标记,并将作为该标记完全纳入您的索引。你可以大写、小写、词干或过滤它,但你不能再拆分它。

即使您将更改您的 fieldType 以便它在查询时以您希望的方式进行标记。索引中的标记仍然存在缺陷,因为它们在索引时已经以错误的方式标记。因此,您搜索的新的正确标记化术语不会在索引中命中任何内容。索引中没有命中,没有搜索结果。

在 solr 参考指南中有一个关于分析器、标记器和过滤器的好部分。由于重建整个索引可能非常昂贵,因此我建议先阅读此内容。

于 2013-10-30T07:18:39.377 回答