solr 搜索多个类别和标签

Posted

技术标签:

【中文标题】solr 搜索多个类别和标签【英文标题】:solr search multiple category and tags 【发布时间】:2012-07-23 11:55:39 【问题描述】:

我想在以下场景中使用 solr:

每张照片可能有多组。 每组将有 1 个“类别”和 1 个“标签集”:

例如Photo A Set 1:“类别”=一件(单件); "tag set" = 修身、复古、红色(多件)

例如Photo A Set 2:“品类”=凉鞋(单品); “标签集” = 平台,红色(多个项目)

我们希望能够根据上述类别/标签搜索照片: 例如“厚底凉鞋”、“红色连体”等

谁能指出我们应该如何设置必要的 schema.xml 文件? (在我们的案例中,我们不需要显示分面类别)

(solr 版本 1.4.1)

提前致谢

【问题讨论】:

【参考方案1】:

您应该在架构中添加两个字段。两者都将是文本字段。您的类别很简单,但您需要使用多值字段。请参阅以下 SO 帖子 - 它与您正在做的事情非常相关:

What is the use of "multiValued" field type in Solr?

<field name="category" stored="true" indexed="true" type="text_general" /> 
<field name="tags" stored="true" indexed="true" type="text_general" multiValued="true"/>

对于您的搜索,您可以添加搜索处理程序来查看和提升特定字段,或者您可以将两个字段复制到第三个字段并在此第三个字段中的组合值上进行搜索。例如

<field name="text" stored="true" indexed="true" type="text_general" multiValued="true"/>    
<copyField dest="text" source="category"/>
<copyField dest="text" source="tags"/>

【讨论】:

谢谢 JP。在此设置中,假设照片 A 有“红色凉鞋”、“棕色连衣裙”,照片 B 有“棕色凉鞋”。如果我们要搜索“brown sandal”,是否可以避免找到照片A(因为照片A的标签中确实有“brown”和“sandal”,但不是正确匹配)?

以上是关于solr 搜索多个类别和标签的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 中,正确地制作具有多个类别、多个标签和搜索的查询集?

Solr 多字构面不显示

如何对 Solr 中的多个字段执行嵌套聚合?

如何使用 Solr/Lucene 搜索值列表?

Solr 搜索多个字段的查询

开源搜索服务 Apache Solr 出现多个高危漏洞