【问题标题】:Solr 5 how to search in specific fieldSolr 5如何在特定领域进行搜索
【发布时间】:2016-03-31 16:13:19
【问题描述】:

我正在使用 Solr 版本 5 来搜索数据。我正在使用以下查询,它在所有字段中搜索关键字。

http://localhost:8983/solr/document/select?q=keyword1+keyword2&wt=json

谁能建议我查询以仅在title 字段中搜索关键字。

谢谢。

【问题讨论】:

    标签: solr lucene solr5


    【解决方案1】:

    使用

       http://localhost:8983/solr/document/select?q=title:*yourkeyword*&wt=json
    

    或完全匹配

       http://localhost:8983/solr/document/select?q=title:"yourkeyword"&wt=json
    

    【讨论】:

    • 我有多个用空格分隔的关键字,例如keyword1 keyword2。我将如何搜索?
    • 类似q=title:"keyword1" OR title:"keyword2"
    • 我可以让它与select?q=title:keyword1 keyword2&wt=json一起工作,但它没有首先显示匹配关键字最高的结果。相反,当我使用select?q=keyword1 keyword2&wt=json 时,它会以完美的顺序显示结果。谢谢。
    【解决方案2】:

    如果没有一些额外的工作,您无法在所有字段中搜索关键字:

    How can I search all field in SOLR that contain the keywords,.?

    “q”-参数包含查询字符串,对于标准解析器,这意味着您必须像 in 一样通过冒号指定字段

    fieldname:searchterm
    

    或者标准解析器将使用默认字段。默认字段在“df”-Parameter 中指定,如果您没有更改 solrconfig.xml,您将在“text”-Field 中搜索,因为您会找到类似

    <requestHandler name="/select" class="solr.SearchHandler">
      <lst name="defaults">
        <str name="df">text</str>
      </lst>
    </requestHandler>
    

    附:如果您想在所有字段中搜索,您必须将copy 的所有字段内容都添加到一个字段,或者您必须使用特定的查询解析器,如dismax parser,您可以在“qf”参数中列出所有字段。

    P.P.S.您不能在所有字段中搜索,但可以在所有字段中突出显示 :-)

    【讨论】:

      【解决方案3】:

      最好的方法是从 Admin concole 运行查询。当我们运行它时,它还提供了实际执行的 SQL 查询。只需复制查询并使用它。

      关于问题:从 Solr 中搜索特定字段值。在管理控制台中查找“Q”文本框。写 yourfield=value 或 yourfield:value。点击“执行查询”按钮。右上角的 SQL 将可用。

      生成的查询:......select?indent=on&q=YOURFIELD:"VALUE"&wt=json

      【讨论】:

        猜你喜欢
        • 2017-10-27
        • 2013-07-06
        • 2019-03-30
        • 1970-01-01
        • 2013-02-16
        • 1970-01-01
        • 2014-08-25
        • 1970-01-01
        • 2014-03-22
        相关资源
        最近更新 更多