Apache SOLR和字符串范围搜索

时间:2014-03-04 12:13:24

标签: java string search solr lucene

可以在字段类型'字符串'上按范围搜索吗?

fieldString:[A TO B]

fieldString:[U-00* TO U-009]

表示给出包含所有字符序列在A到B之间的字段的结果 U-009之间的所有U-000

现在我从U-001,U-002 ......到U-009

获得了一些值
I try: fieldString:[U-00* TO U-009] but this dont work
fieldString:/U-00[0-9]/ and also the same non results

1 个答案:

答案 0 :(得分:0)

是的,有可能。但结果可能取决于您如何分析索引中的字符串。如果字符串只是A或B,则没有问题;但在一些标记化方面,您可能会得到包含A或B的所有结果。

schema.xml:
<types>
    <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true" />
    ...
</types>

<fields>
    ...
    <field name="isbn" type="string" indexed="true" stored="true" multiValued="false" />
    ...
</fields>

solrconfig.xml:
<requestHandler class="solr.SearchHandler" name="standard">
</requestHandler>

如你所见,没有什么特别的。任何过滤器都不会处理字符串类型,而只是按原样存储。我使用标准查询解析器。在此配置中,您的示例正常工作