【问题标题】:Edismax query in SolrSolr 中的 Edismax 查询
【发布时间】:2015-11-04 13:47:33
【问题描述】:

我在 solr 中使用 edismax 查询如下

qf = search

搜索字段包含以下数据

audi
bmw
land rover
aston martin

只搜索一个词

即。

q = bmw audi

使用以下数据生成结果

bmw
audi

q = 宝马路虎

它没有给出任何结果,但是

q = 奥迪“路虎”

返回想要的结果

有没有可能我只要打字就能得到结果

q = 奥迪路虎

请帮忙。

【问题讨论】:

    标签: php search solr


    【解决方案1】:

    当您为数据编制索引时,您必须使用WhiteSpaceTokenizer 之类的分析器,如Solr documentation 中所述:

    <analyzer>
       <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    </analyzer>
    

    这将索引audilandrover、...等令牌。

    【讨论】:

    • 我使用了相同的方法,它就像宝石一样工作。谢谢。
    【解决方案2】:

    您可以在 solr (lucene) 中使用 ANDOR

    q = audi OR "land rover"
    

    请试试这个

    【讨论】:

    • 我有一个文本框,用户可以在其中输入任何内容。如果用户输入“bmw audi”,我们会得到结果,但如果是“land Rover”或“audi Land Rover”则不会。
    • 请将“空格”替换为 OR 我的意思是“bmw audi”==>bmw OR audi
    • 搜索有两行 audi land rover q = audi 给出结果但 q = aston martin 没有??
    • 其实解析成+((search:land) (search:rover)) ()应该是+((search:land) (search:rover) (search:land rover)) ()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 2012-12-24
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多