使用多个字段的 Solr 搜索查询
Posted
技术标签:
【中文标题】使用多个字段的 Solr 搜索查询【英文标题】:Solr search query using multiple fields 【发布时间】:2022-01-09 17:17:02 【问题描述】:我的对象具有以下字段:标题、图像、描述、web、类型、url、id 和 _version(食谱集合)。类型是食谱的类别(甜点,第一道菜......)。我想在以下类型中找到所有标题或描述包含“pasta pomodoro”的元素:secondi-piatti(即第二道菜)。我的查询是:(标题:pasta,pomodoro OR 描述:pasta,pomodoro)AND(类型:secondi-piatti)。 标题和描述查询是正确的(因为通过这种方式它还可以找到仅包含“番茄”或“意大利面”的元素),但我不明白为什么在我的结果中我也有以下类型的食谱:primi-piatti(即是,第一门课程),因为我认为使用 AND 它只会找到该类型的元素。有人知道是什么问题吗?
我还必须说,如果我编写相同的查询,但不使用 type:secondi-piatti,而是使用 type:dolci(甜点),它会起作用,因为它只显示包含“pasta”作为甜点的食谱,而不是食谱的第一门课程。总之,这个查询结构遵循我想要的类型,只有当类型是 dolci(甜点)时,所有其他类型(primi、secondi-piatti、antipasti、contorni)都不起作用。
【问题讨论】:
【参考方案1】:我发现了问题。拥有一个包含两个词条的类型,它会搜索包含一个词条或另一个词条的类型,实际上 piatti 既属于 primi-piatti 又属于 secondi-piatti。我必须写:
(标题:pasta,pomodoro OR 描述:pasta,pomodoro) AND type:(secondi AND piatti)
【讨论】:
您可以在引号Title:"pasta pomodoro"
中传递查询以强制Solr 进行短语查询。您还可以传递debugQuery
参数以查看 Solr 如何解释您的查询 (hectorcorrea.com/blog/solr-debugquery/87)以上是关于使用多个字段的 Solr 搜索查询的主要内容,如果未能解决你的问题,请参考以下文章