我正在使用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"/>`
答案 0 :(得分:1)
您使用的是查询解析器吗?如果是,请在您的文件 solrconfig.xml 中,您在 requestHandler 中使用的查询字段是什么? ( qf 参数)。如果您没有姓氏字段,那么这是正常行为。
如果您不使用查询解析器,请在文件 schema.xml 中,您的 defaultSearchField 是什么?
您可以添加Solr文件的片段吗?
答案 1 :(得分:1)
如果您没有为搜索指定字段,则会搜索默认搜索字段。如果要执行类似的搜索,可以创建新字段并复制要使其成为搜索目标的所有其他字段,然后将其设置为默认搜索字段。
以下是一些资源:
答案 2 :(得分:0)
这是因为您没有正确设置默认搜索字段。如果您没有在&#34; q&#34;中传递字段名称,它会将输入搜索到您在项目的配置文件中设置的默认字段。
要设置默认字段,您可以执行以下任一方式:
在schema.xml中,更改<defaultSearchField>id</defaultSearchField>
到<defaultSearchField>lastname</defaultSearchField>
在q中使用q={!type=dismax qf=lastname}KOHLI
运行(删除&#34; q =&#34;如果在网络端口中)
参考:
请参阅查询类型简短表格
https://archive.apache.org/dist/lucene/solr/ref-guide/apache-solr-ref-guide-4.9.pdf
希望它可以提供帮助。谢谢。