【问题标题】:How do I index different sources in Solr?如何在 Solr 中索引不同的源?
【发布时间】:2011-05-12 10:29:40
【问题描述】:

如何在同一个 Solr 架构中索引文本文件、网站和数据库?所有 3 个来源都是必需的,我正在尝试弄清楚如何去做。我做了一些示例,它们工作正常,因为它们彼此分开,现在我需要它们全部为 1 个模式,因为用户将在所有这 3 个数据源中进行搜索。

我应该如何进行?

【问题讨论】:

    标签: solr indexing schema-design edismax


    【解决方案1】:

    您应该为每个内容来源草拟一些注释:

    • 哪些元数据可用
    • 如何获取信息
    • 我想如何呈现信息

    完成后,确定要使哪些元数据可搜索。其中一些可能只针对一个内容源(例如网页上的作者,或数据库行中的任何给定字段),而另一些将出现在所有源中(例如唯一 ID、标题、文本内容)。根据需要使用copy-fields 合并字段。

    元数据会因项目而异,但是是的——更新日期、文件名以及您可以从文本文件中解析出来的任何结构化数据肯定会帮助您提高相关性。除此之外,它因情况而异。也许文件路径暗示了您可以用作元数据的(可能是非正式的)分类法。也许文件名本身就包含元数据(例如年份、关键字、产品名称等)。

    准备好在显示结果时为不同的来源使用不同的字段。 source 字段在创建结果图块方面大有帮助 - 它可能会成为您最常用的方面。

    广泛使用复制字段的另一种(可能是首选)方法是使用DisMax/EDisMax 请求处理程序,以方便在多个字段中进行搜索。

    考虑混合使用复制字段和 (e)dismax。例如,将不需要存储的所有字段复制到包罗万象的文本字段中,并将其包含在搜索中,但提升值较低,并包含高权重字段(例如标题、标题或关键字)或文件名)在搜索中。在 dismax 中有很多参数需要调整,但绝对值得付出努力。

    【讨论】:

    • 感谢您的详尽回复。你能扩展一下元数据部分吗?这是否意味着文件名,创建日期......等等......?我需要使其可搜索的信息是一些表格列和在文本文件中找到的文本。使用用户输入关键字的单个文本字段进行搜索。搜索应遍历所有类型的数据源并返回所有相关结果。
    • @Ali:更新了,但实际上,看看 dismax 请求处理程序,它应该很好地映射到您的要求
    猜你喜欢
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2017-04-23
    • 2017-07-06
    相关资源
    最近更新 更多