Solr - 前缀查询

时间:2013-01-31 04:11:11

标签: solr

当我使用查询addr搜索时:s *

我得到......(这是虚拟数据)

addr=someword
addr=banana-sunny.or
addr=seventy
addr=salvation

我只想要那些以“s”开头的记录,但结果中的第二条记录以“b”开头。

1 个答案:

答案 0 :(得分:4)

您可能正在对地址字段使用文本分析,将单词拆分为多个标记 在这种情况下,“香蕉阳光”这个词可能会被分成多个标记(香蕉,阳光或其他) 因此,搜索s *会返回结果。
如果您不想进行拆分,请使用KeywordTokenizerFactory和其他过滤器定义新的字段类型。例如

<fieldType name="text_string" class="solr.TextField" sortMissingLast="true" omitNorms="true">
  <analyzer>
    <tokenizer class="solr.KeywordTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory" />
  </analyzer>
</fieldType>