我正在使用SOLR 4.9.0以及以下配置(我只包括我认为与问题相关的部分):
<field name="content" type="text" indexed="true" stored="false"
termVectors="true" multiValued="false" />
<fieldType name="text" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
我可以近距离搜索一个接近另一个术语的术语:
content:"very suggestion"~100
我需要添加能够搜索接近数字标记的术语的功能,例如:
content:"very [0.01 TO 0.99]"~100
content:"very [100 TO 1000000]"~100
是否有已经提供此功能的标记器?
如果不是,为了使标准标记器能够做到这一点,大致会有哪些步骤?
关于对索引结构,大小和索引/搜索速度的影响是什么的任何推测?
编辑:
我认为以下SOLR配置实际上也与我的问题相关:
<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">id</str>
<str name="wt">json</str>
<str name="indent">true</str>
<str name="fl">* score</str>
</lst>
</requestHandler>
两年多以后,我找到了问题的答案:)
通过使用
https://lucene.apache.org/solr/guide/6_6/other-parsers.html#OtherParsers-ComplexPhraseQueryParser
一个人可以做到:
{!complexphrase inOrder = false}内容:“费[100 10000]”~10