Solr - 搜索字符串中的单词

时间:2012-07-19 14:40:43

标签: string text solr

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

“你好,我的名字是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>

和这个查询:

选择/ Q = properties_all:AM-名称与&安培;版本= 2.2&安培;开始= 0&安培;行数= 10安培;缩进=上

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

感谢您的帮助!!!!

1 个答案:

答案 0 :(得分: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