我试图了解如何满足我的搜索要求。
第一个是正常的产品搜索,我知道Solr可以适当地处理,您搜索一个术语,Solr返回相关文档。
第二个是搜索某个类别中的产品。我的数据库中有一个层次结构,该结构由一个包含许多子类别的类别组成,这些子类别具有产品。
问题是,当搜索一些非常具体的单词时,不应该使用第一种方法,而是应该搜索一个类别,并且只应该返回该类别中的产品,这对我来说是一个非常基本的SQL查询(从categoryId = 1000的产品中选择*)。
Solr是否应该或可以在第二种情况下使用?如果是这样,通常使用的方法是什么?
除了@Mysterion提出的过滤器查询之外,您还应该看看Solr Facets,它为您提供了非常强大的类似分类的搜索。
您可能还需要考虑categoryParentIds
的多值字段,该字段将包含产品所在的父类别,因此与筛选器查询和/或分面相结合将获得父类别搜索。
是的,您可以在 Solr 中使用类似的方法,通过使用 categoryId 及更高版本来归因您的产品,同时搜索类似于 SQL 的添加过滤器查询,categoryId:10000
有关筛选器查询的详细信息,请查看此处 - http://wiki.apache.org/solr/CommonQueryParameters#fq