我要求做一个'包含'查询数字字段。是否有任何建议可以做到这一点。例如fq = some_tint_field:* 7 *(开箱即用,这不起作用,返回相当奇怪的结果 - 例如,数字55返回为匹配* 7 *)
我无法从色调中更改字段类型,因为它在范围查询中使用。 到目前为止,我的想法是
有一个字符串字段myField_str,它使用copyfield指令隐藏数字字段,并将其用于搜索。
调查查询函数,并以某种方式有一个自定义查询机制,在运行查询之前将int转换为字符串。
答案 0 :(得分:0)
我建议定义另一个字段...... 这另一个字段应该是不同的字段类型,它将生成不同的令牌,这将有助于您实现包含搜索。
例如..您可以拥有一个自定义字段类型,它将包含ngram tokenizer。
您可以在schema.xml中添加以下字段类型。 使用" partial_search"您要在其中执行部分搜索的字段的fieldType。
完成schema.xml更改后,您需要重新启动服务器并重新索引数据。
<fieldType name="partial_search" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="2" maxGramSize="10"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
</fieldType>