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>
这将使它标记您的多值输入,这样您就可以分别找到每个数字。
我有一个带有架构的 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>
这将使它标记您的多值输入,这样您就可以分别找到每个数字。