Solr reference查询无返回数据 按官方教程搜索term返回空结果
Solr techproducts执行
q=foundation搜索无返回结果排查方案 按实际踩坑概率从高到低逐一验证:
- 优先验证索引是否真的写入了示例数据
先查核心索引状态:
找到返回结果里curl "http://localhost:8983/solr/admin/cores?action=STATUS&core=techproducts"index.numDocs字段,如果值为0,100%是漏了教程里导入示例文档的步骤,直接执行导入命令:
导入完成后bin/solr post -c techproducts example/exampledocs/*numDocs数值会在30~50区间(随版本略有浮动),此时再执行搜索请求就能正常返回Foundation系列图书的结果。 - 索引有数据但全字段搜不到时,验证字段映射配置
示例数据里的"foundation"关键词存储在name字段,默认不带字段名的搜索会查聚合拷贝字段_text_,如果schema加载异常会导致全字段搜索匹配不到。先指定字段搜索验证:
如果这个请求能正常返回结果,说明默认搜索字段配置出错:检查核心配置目录下的curl "http://localhost:8983/solr/techproducts/select?q=name:foundation"managed-schema文件,确认存在默认搜索字段配置、且name等字段已经配置了拷贝到_text_的规则。 - 加调试参数确认查询逻辑是否被篡改
带debug参数发起请求,查看实际解析后的查询语句:
重点看返回值里的curl "http://localhost:8983/solr/techproducts/select?q=foundation&debug=query"parsedquery字段,如果出现了你没有主动添加的过滤条件、查询字段不匹配,说明你修改过solrconfig.xml里/select请求处理器的配置,回滚为教程默认配置后重启Solr即可。 - 以上都正常时排查日志错误
打开server/logs/solr.log查看ERROR级别日志,如果存在索引段损坏、核心加载异常的报错,直接停掉Solr服务,删除server/solr/techproducts/data目录,重新走创建核心、导入数据的流程即可。
最高发的踩坑场景:很多人执行完启动Solr、创建techproducts核心的步骤就直接发起搜索,完全跳过了导入示例文档的环节,空索引自然不会返回任何结果。
内容的提问来源于stack exchange,提问作者B.W
相关产品推荐
相关产品推荐

