Apache Solr 6.5 多值字段查询

Apache Solr 6.5 Multi-valued field query

我有一个带有架构的 Solr 6.5 索引: OrderId、OrderType、AirNumber 等..

我的文档看起来像:

"OrderId":"-7878676767676",
"OrderType:"["Fee",
             "Insurance",
             "Air",
             "Fee"]
"AirNumber":["",
             "",
             "[2608620989121, 2608620989123]",
             ""],

查询AirNumber时,无法检索到上述订单。

q=AirNumber:2608620989121

我的 AirNumber 架构是:

<field name="AirNumber" type="token" indexed="true" stored="true" multiValued="true" omitTermFreqAndPositions="false"/>

我尝试了不同的查询组合,我也尝试使用 AirNumber 作为 "string",但没有任何效果。我错过了什么?

对于字符串字段类型,它不起作用,因为此字段类型不会标记值,因此您需要查询确切的值“[2608620989121, 2608620989123]”。

而对于"token"类型,则取决于你对字段类型的配置"token"。

使其在您的用例中起作用的一种方法是配置令牌字段类型,如下所示:

<fieldType name="token" class="solr.TextField" positionIncrementGap="100" multiValued="true">
    <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory"/>
    </analyzer>
</fieldType>

这将使它标记您的多值输入,这样您就可以分别找到每个数字。