我正在使用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>
答案 0 :(得分:0)
看看this answer类似的问题。您在将标记为多个术语的文本字段上排序时会遇到问题。在这种情况下,您仍然可以通过将分析器更改为关键字分析器来实现。如果您仍然需要多个术语,那么您将要将copyField复制到另一个字段中。