【问题标题】:Solr inaccurate search resultSolr 搜索结果不准确
【发布时间】:2020-07-15 13:56:49
【问题描述】:

这似乎是我的 solr 索引中的问题/错误配置。

详细地说,当我在查询中使用一些单词执行搜索时,solr 结果是好的,它返回了 50 个条目。

让我举个例子:

示例 1)

url = http://mydomain:8983/solr/mycore/select?q=walk%20in%20the%20city
query = walk in the city
results = 231373, 231372, 231454, ....

不幸的是,当我在查询中使用单个单词时,solr 结果被“截断”

让我举几个例子:

示例 2)

url = http://mydomain:8983/solr/mycore/select?q=Walk
query = Walk
results = 231373, 231372

示例 3)

url = http://mydomain:8983/solr/mycore/select?q=city
query = city
results = 231373, 231372

如您所见,“Walk”和“city”这两个词在我的第一个查询集中。 示例 2/3 的结果是一样的。

我是使用 solr 的初学者,可能我在 solr 配置中执行了一些错误。 为了优化查询,我必须首先检查什么?

提前致谢。

最好的问候。 塞尔吉奥

【问题讨论】:

  • 查询字段是什么?应用的字段类型是什么?
  • 在第一种情况下,如果 q.op 设置为 OR - 您将有效地搜索具有 either walkin、@987654327 的任何文档@ 或 city。因此,这将比仅使用其中一个术语产生更多的命中,尤其是最不常见的两个术语(walkcity)。如果激活,停用词过滤器将删除 inthe,但我猜你没有。除了特定的字段配置,大小写也很重要。

标签: search solr lucene solrj


【解决方案1】:

我建议将debugQuery=true 添加到您的查询中,然后查看结果中的debug 节点。在debug 下特别查看parsedquery 以查看Solr 对您的查询所做的工作,例如它正在搜索哪些字段以及在表达式之间使用AND 还是OR(例如+fieldName 表示AND)。

另外,在debug 下有一个explain 节点,其中包含找到的文档以及为什么找到它们。这应该可以帮助您确定返回这些记录的原因。 explain 的输出非常复杂,但是对于这类问题有很多有用的信息。

(我知道这不是您问题的完全答案,但评论太长了。)

【讨论】:

  • 目前我通过更改 select 请求处理程序的配置来解决。详细我从 categoria^30 caratteristiche_txt_multi titolo^20 taglie_str^20 colori_str contenuto codice_a^100 codice_s^100 跳转到 contenuto categoria caratteristiche_txt_multi marchio_txt titolo codice_s 删除了权重并更改了 contenuto 字段的位置。这似乎对搜索有好处。我会继续调查以获得最佳解决方案。感谢您的回复!
猜你喜欢
  • 2014-01-24
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 2013-12-15
  • 2012-05-24
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多