如何在Solr中执行精确搜索

时间:2015-12-09 14:14:42

标签: solr

我使用API​​实现Solr搜索。当我使用参数" Chillout Lounge"来调用它时,它会返回与字符串" Chillout Lounge"相同/相似的集合。 但是当我搜索" Chillout Lounge Box"时,它返回的结果是没有这三个单词中的任何一个。(在DB中有值具有这3个值,但它们不是返回。)

据我所知,Solr使用模糊搜索,但是当它完成时它应该返回一些值,这些值至少有一个这样的值。

或者我应该对schema.XML进行可能的更改,这样会给我正确的值。

1 个答案:

答案 0 :(得分:0)

首先 - “模糊搜索”是您必须要求的功能(在标准Lucene查询语法中使用~)。

如果您正在谈论常规搜索,可以使用q.op选择要使用的运算符。 q.op=AND会确保所有字词都匹配,而q.op=OR会生成包含至少一个字词的任何文档。只要你没有使用fq,匹配更多术语的文档应该得分更高(因为得分将在多个术语中加起来),因此,在结果集中显示得更高。 / p>

您可以使用Web界面中的调试查询功能查看文档的每个术语的分数,并找出文档的返回原因。如果文档与任何条款不匹配,则不应退回,除非您要求退回所有文档。

请注意,为您搜索的字段定义的分析器链可能会影响被认为是匹配的内容。

您必须添加一个正确的示例才能获得更详细的答案。