用单个字符搜索的通配符获得意外结果

时间:2014-12-30 18:06:12

标签: solr cassandra

我正在使用solr来查询具有单个字符和外卡搜索的字段。

例如,我希望返回一个名为"A", "AA", "AB", "BZ^A", "AAB"的对象。

如果我创建了q=name:a&sort=name+asc

的查询

我得到"A", "BZ^A", "AA"的意外结果,依此类推。

我也试过q=name:a*,结果集也一样。

有没有办法获得"A", "AA", "AAB", "AB", "BZ^A"的预期排序结果?

这是xml文件中的字段类型/名称信息。

<schema name="solr_quickstart" version="1.1">
  <types>
    <fieldType name="text" class="solr.TextField">
      <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
      </analyzer>
    </fieldType>
  </types>
  <fields>
    <field name="name" type="text" indexed="true" stored="true" />
  </fields>
   <defaultSearchField>name</defaultSearchField>
  <uniqueKey>(name)</uniqueKey>
</schema>

1 个答案:

答案 0 :(得分:0)

看看this answer类似的问题。您在将标记为多个术语的文本字段上排序时会遇到问题。在这种情况下,您仍然可以通过将分析器更改为关键字分析器来实现。如果您仍然需要多个术语,那么您将要将copyField复制到另一个字段中。