【问题标题】:Lucene / SOLR term to number range proximity searchLucene / SOLR 术语到数字范围邻近搜索
【发布时间】:2015-11-09 10:14:06
【问题描述】:

我正在使用具有以下配置的 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>

【问题讨论】:

  • 不,据我所知,你没有开箱即用的东西,我还想举一个这种新型查询的预期行为示例?你能解释一下它应该如何工作吗?
  • @Mysterion 抱歉,我认为这很清楚。基本上,我想要例如 content:"very [0.01 TO 0.99]"~100 来返回标记“very”在 0.01 到 0.99 之间的浮点数的 100 个标记内的文档。

标签: solr lucene


【解决方案1】:

两年多后,我找到了我的问题的答案:)

通过使用

https://lucene.apache.org/solr/guide/6_6/other-parsers.html#OtherParsers-ComplexPhraseQueryParser

一个人可以做到:

{!complexphrase inOrder=false}content:"fee [100 10000]"~10

【讨论】:

    猜你喜欢
    • 2011-09-22
    • 2019-08-11
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    相关资源
    最近更新 更多