【问题标题】:Implement Search Everything using Solr使用 Solr 实现 Search Everything
【发布时间】:2012-07-27 08:34:03
【问题描述】:

搜索所有类型的应用程序如何将数据编入索引并将其跟踪到其搜索索引中。

最近我一直在研究 Apache Solr,它为搜索产生了惊人的结果。但这是针对正在搜索的一个特定产品目录部分。由于 Solr 是一个存储它的数据文档,我们将可搜索字段索引为 solr 中的文档。我不确定它如何用于构建搜索所有类型的搜索?我应该如何将数据索引到 Solr 中?

我的意思是搜索所有内容,在不同的模块中搜索客户、服务、帐户、订单、目录、支持票等信息。因此,搜索返回的结果是单个搜索表单和用户不合并的结果不需要进入不同的表单来搜索那个模块?

我是否需要为每个此类数据模型构建不同的索引或将它们作为单个文档存储到 solr 中?实现这一点的最佳策略是什么。

【问题讨论】:

    标签: search solr lucene search-engine


    【解决方案1】:

    您可以将所有数据存储在单个索引中,每个文档都有一个额外的字段来存储其类型(客户、订单等)。对于模块内搜索,只需将搜索查询限制为该类型的文档。对于 Search All 功能,使用 copyField 将每个文档类型中的所有相关字段复制到一个大字段中,并在文档类型字段不受限制的情况下进行搜索。

    【讨论】:

    • @Krunal 你对哪一部分感到困惑?
    • 我需要存储哪些字段?单个文档是否包含所有模块的所有字段?
    • 不是每个文档都包含所有字段,但架构会定义一个文档,以便它可以包含任何字段。您不必一定要填写它。或者,您可以使用动态字段。
    • 好的,现在知道了。因此,除了 solr docs 主唯一键之外,我将采用与该特定模块的 db 表有关的另一个唯一键。如果我错了,请纠正我。
    • 嗯,它不会是唯一的钥匙吧?只是一个字段来存储它是什么类型的文档。
    猜你喜欢
    • 2021-04-08
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    相关资源
    最近更新 更多