Apache Solr搜索

时间:2015-03-31 11:54:00

标签: apache solr

我正在使用Apache Solr进行搜索。我使用数据导入处理程序从mysql表导入数据。但是当我使用q=KOHLI q=lastname:KOHLI时,我没有得到任何结果。

以下是q=lastname:KOHLI

的回复
{
  "responseHeader": {
      "status": 0,
      "QTime": 1,
      "params": {
      "q": "lastname:KOHLI",
      "indent": "true",
      "wt": "json",
      "_": "1427802213299"
    }
  },
  "response": {
     "numFound": 1,
     "start": 0,
     "docs": [
      {
        "lastname": "KOHLI",
        "town": "DELHI",
        "id": "2",
        "firstname": "VIRAT",
        "_version_": 1497158663291273200
      }
    ]
  }
}

schema.xml中:

<copyField source="firstname" dest="text"/>
<copyField source="lastname" dest="text"/>
<copyField source="town" dest="text"/>
<field name="firstname" type="text_general" indexed="true" stored="true"/>
<field name="lastname" type="text_general" indexed="true" stored="true"/>
<field name="town" type="text_general" indexed="true" stored="true"/>`

3 个答案:

答案 0 :(得分:1)

您使用的是查询解析器吗?如果是,请在您的文件 solrconfig.xml 中,您在 requestHandler 中使用的查询字段是什么? ( qf 参数)。如果您没有姓氏字段,那么这是正常行为。

如果您不使用查询解析器,请在文件 schema.xml 中,您的 defaultSearchField 是什么?

您可以添加Solr文件的片段吗?

答案 1 :(得分:1)

如果您没有为搜索指定字段,则会搜索默认搜索字段。如果要执行类似的搜索,可以创建新字段并复制要使其成为搜索目标的所有其他字段,然后将其设置为默认搜索字段。

以下是一些资源:

答案 2 :(得分:0)

这是因为您没有正确设置默认搜索字段。如果您没有在&#34; q&#34;中传递字段名称,它会将输入搜索到您在项目的配置文件中设置的默认字段。

要设置默认字段,您可以执行以下任一方式:

  1. 在schema.xml中,更改<defaultSearchField>id</defaultSearchField><defaultSearchField>lastname</defaultSearchField>

  2. 在q中使用q={!type=dismax qf=lastname}KOHLI运行(删除&#34; q =&#34;如果在网络端口中)

  3. 参考:

    请参阅查询类型简短表格

    https://archive.apache.org/dist/lucene/solr/ref-guide/apache-solr-ref-guide-4.9.pdf

    希望它可以提供帮助。谢谢。