Solr 查询无法在结果集中获取预期的文档
Solr Query is not able to pick up expected documents in result set
我有一个 Solr 文档,其字段和值如下所示。
我试图点击以获取此文档的已解析查询是“繁文缛节白色休闲鞋”-
parsedquery: "+(DisjunctionMaxQuery((keywords_text_en:casual | (brandName_text_en_mv:casual)^3.0 | (name_text_en:casual)^2.0 | (categoryName_text_en_mv:casual)^4.0))
DisjunctionMaxQuery((Synonym(keywords_text_en:boot keywords_text_en:shoe) | (Synonym(brandName_text_en_mv:boot brandName_text_en_mv:shoe))^3.0 | (Synonym(name_text_en:boot name_text_en:shoe))^2.0 | (Synonym(categoryName_text_en_mv:boot categoryName_text_en_mv:shoe))^4.0))
DisjunctionMaxQuery((keywords_text_en:red | (brandName_text_en_mv:red)^3.0 | (name_text_en:red)^2.0 | (categoryName_text_en_mv:red)^4.0)) DisjunctionMaxQuery((keywords_text_en:tape | (brandName_text_en_mv:tape)^3.0 | (name_text_en:tape)^2.0 | (categoryName_text_en_mv:tape)^4.0)) DisjunctionMaxQuery((keywords_text_en:white |
(brandName_text_en_mv:white)^3.0 | (name_text_en:white)^2.0 | (categoryName_text_en_mv:white)^4.0)))~5 DisjunctionMaxQuery(((keywords_text_en:"casual (boot shoe) red tape white"~5)^2.0 | (brandName_text_en_mv:"casual (boot shoe) red tape white"~5)^6.0 | (categoryName_text_en_mv:"casual (boot shoe) red tape white"~5)^8.0 | (name_text_en:"casual (boot shoe) red tape white"~5)^4.0))",
据我了解,由于 'categoryName_text_en_mv' 字段中出现了“casual”这个词,而其他查询字段中出现了所有其他词,因此该查询应该能够找到这个和 return 在响应中。
但是找到的文档数是 0。有人可以帮助我了解我在这里缺少什么吗?
提前致谢!
编辑 1
有趣的是,当查询是“red tape white shoes”时,预期的文档就会出现在结果中。只有当我将 'casual' 添加到查询时,它才会失败。重要的观察是,除 causal 之外的所有其他词都出现在单个字段中。我怀疑 solr 无法跨多个字段匹配文档
我建议您使用分析屏幕。 select drop-down 中的字段并将您正在搜索的值放在查询和索引端以查看其管道是如何定义的。
我刚刚重新索引了一份特定文档,它为我解决了这个问题。看起来索引在 solr 端没有正确发生。
我有一个 Solr 文档,其字段和值如下所示。
我试图点击以获取此文档的已解析查询是“繁文缛节白色休闲鞋”-
parsedquery: "+(DisjunctionMaxQuery((keywords_text_en:casual | (brandName_text_en_mv:casual)^3.0 | (name_text_en:casual)^2.0 | (categoryName_text_en_mv:casual)^4.0))
DisjunctionMaxQuery((Synonym(keywords_text_en:boot keywords_text_en:shoe) | (Synonym(brandName_text_en_mv:boot brandName_text_en_mv:shoe))^3.0 | (Synonym(name_text_en:boot name_text_en:shoe))^2.0 | (Synonym(categoryName_text_en_mv:boot categoryName_text_en_mv:shoe))^4.0))
DisjunctionMaxQuery((keywords_text_en:red | (brandName_text_en_mv:red)^3.0 | (name_text_en:red)^2.0 | (categoryName_text_en_mv:red)^4.0)) DisjunctionMaxQuery((keywords_text_en:tape | (brandName_text_en_mv:tape)^3.0 | (name_text_en:tape)^2.0 | (categoryName_text_en_mv:tape)^4.0)) DisjunctionMaxQuery((keywords_text_en:white |
(brandName_text_en_mv:white)^3.0 | (name_text_en:white)^2.0 | (categoryName_text_en_mv:white)^4.0)))~5 DisjunctionMaxQuery(((keywords_text_en:"casual (boot shoe) red tape white"~5)^2.0 | (brandName_text_en_mv:"casual (boot shoe) red tape white"~5)^6.0 | (categoryName_text_en_mv:"casual (boot shoe) red tape white"~5)^8.0 | (name_text_en:"casual (boot shoe) red tape white"~5)^4.0))",
据我了解,由于 'categoryName_text_en_mv' 字段中出现了“casual”这个词,而其他查询字段中出现了所有其他词,因此该查询应该能够找到这个和 return 在响应中。
但是找到的文档数是 0。有人可以帮助我了解我在这里缺少什么吗?
提前致谢!
编辑 1 有趣的是,当查询是“red tape white shoes”时,预期的文档就会出现在结果中。只有当我将 'casual' 添加到查询时,它才会失败。重要的观察是,除 causal 之外的所有其他词都出现在单个字段中。我怀疑 solr 无法跨多个字段匹配文档
我建议您使用分析屏幕。 select drop-down 中的字段并将您正在搜索的值放在查询和索引端以查看其管道是如何定义的。
我刚刚重新索引了一份特定文档,它为我解决了这个问题。看起来索引在 solr 端没有正确发生。