Apache Solr 6.5多值字段查询

时间:2017-09-28 23:31:33

标签: apache solr multivalue

我有一个带有架构的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"/>

我尝试了不同的组合来查询&amp;我也试过AirNumber作为“字符串”,没有任何作用。我错过了什么?

1 个答案:

答案 0 :(得分:1)

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

对于“令牌”类型,它取决于您的字段类型“令牌”的配置。

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

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

这会使您对多值输入进行标记,这样您就可以单独找到每个数字。