当我使用查询addr搜索时:s *
我得到......(这是虚拟数据)
addr=someword
addr=banana-sunny.or
addr=seventy
addr=salvation
我只想要那些以“s”开头的记录,但结果中的第二条记录以“b”开头。
答案 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>