0

我有一个包含很多单词的字段,例如:

“你好,我的名字是 Nicole,我正在与 Solr 合作”

如果我搜索这个词,我需要 Solr 返回这个文档(请注意,词序与索引文本中的不同):

“我的名字与”

我正在使用这个配置

<fieldType name="propertiesField" class="solr.TextField">
    <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.PatternTokenizerFactory" pattern="-" />
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
</fieldType>

这个查询:

select/?q=properties_all:am-name-with&version=2.2&start=0&rows=10&indent=on

当我使用分析器对其进行分析时,这些单词会突出显示,但在我进行搜索时未找到任何文档。

谢谢你的帮助!!!!

4

1 回答 1

1

如果没有充分的理由使用不同的索引和查询时间分析器,请不要。

我会 fieldType 喜欢:

<fieldType name="propertiesField" class="solr.TextField">
    <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
</fieldType>

另外将默认运算符设置为 AND(模式文件)

<solrQueryParser defaultOperator="AND"/>

然后查询 Solr:

select/?q=properties_all:(am name with)&version=2.2&start=0&rows=10&indent=on
于 2012-07-19T15:11:51.837 回答