我有一个带有架构的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作为“字符串”,没有任何作用。我错过了什么?
答案 0 :(得分:1)
对于字符串字段类型,它将无法工作,因为此字段类型不会对值进行标记,因此您需要查询确切的值“[2608620989121,2608620989123]”。
对于“令牌”类型,它取决于您的字段类型“令牌”的配置。
在您的用例中使其工作的一种方法是配置令牌字段类型,如下所示:
<fieldType name="token" class="solr.TextField" positionIncrementGap="100" multiValued="true">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
</analyzer>
</fieldType>
这会使您对多值输入进行标记,这样您就可以单独找到每个数字。