首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solr搜索:使用"AND“搜索在多个字段中搜索

Solr搜索:使用"AND“搜索在多个字段中搜索
EN

Stack Overflow用户
提问于 2020-02-24 22:17:42
回答 1查看 24关注 0票数 0

我是一家电子商务公司的搜索引擎的产品所有者,目前我正在“发现”Solr -因为我以前从未使用过这个引擎。如果我没有使用正确的术语,请提前向您道歉。

我有一个典型的用例:一个用户寻找“苹果iPhone”。数据集包含诸如品牌=苹果、产品名称= iPhone、产品类型=智能手机、类别=智能手机等字段。

在我们当前的设置中,根据我们的外部顾问的说法,引擎将提供包含苹果或iPhone 8的所有结果。为了首先获得所有苹果iPhones作为结果,他们建议我们创建一个新的索引属性,其中包含品牌、产品名称、产品类型和类别,并替换单个属性(因此品牌、产品名称等)。被这个新的。根据他们的说法,Solr不能提供一个与搜索(查找其数据集中包含苹果和iPhone的所有产品)。

这是正确的吗?你会以同样的方式处理这个用例吗?

我非常怀疑Solr不能在单独的属性中查找苹果iPhone,然后在索引属性中同时包含这两个术语的结果。他们建议的改变也意味着我们失去了粒度,因为多个字段被连接在一个字段中。这也意味着我们将不能再单独提升每个属性,因为它们被新的属性所取代。

我知道我的请求可能会成为一个“新手”问题,但作为一个非开发人员,我仍然不能解决这个问题,顾问们似乎真的认为这是处理这个用例的唯一方法。

感谢大家的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-02-24 23:00:54

没有任何理由失去粒度;通常您会希望将字段(使用copyField指令)复制到一个或多个字段中,以支持不同类型的查询(这也允许您在具有不同权重的不同字段中获得命中分数)。这样,您可以保留所有原始字段,并拥有一个新的、独立的字段,它将所有内容作为一个搜索字段。

根据您的查询用例,您可能只需要edismax查询处理程序和qf=Brand ProductName ProductType即可查询这些字段,并设置q.op=AND (或mm=<factor>)即可获得所需的行为。如果你不能使用qf跨字段进行匹配,可以使用复制了不同字段的字段作为基本匹配(例如,如上所述添加SearchField作为qf中的最后一个字段),然后相应地提高品牌/名称等的命中率,这样只有“苹果”的精确匹配得分就会更高。

被认为是匹配的确切内容将取决于字段发生的标记化和过滤。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60377811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档