gpt4 book ai didi

search - 如何为一对多关系配置 Solr

转载 作者:行者123 更新时间:2023-12-03 15:01:09 24 4
gpt4 key购买 nike

我正在使用 Solr 开发一个搜索应用程序,它需要搜索分成章节的“书籍”。一本书可能是这样的:

title: "book title"
author: "mr whoever"
chapters: [
{
title: "some chapter title"
text: "blah blah blah"
},
{
title: "some other title"
text: "blah blah blah"
},
... etc.
]

搜索要求:
  • 用户正在搜索书籍而不是章节,因此考虑到里面的所有章节文本,最重要的结果必须是整体最相关的书籍。
  • 用户需要查看一本书中的哪些章节匹配,关于这些章节的信息以及每章有多少匹配。

  • results mockup

    进步:

    多值字段

    Solr 支持多值字段(即每本书有多个章节),但书文档中的每个字段不可能有两个字段(标题和文本)。

    Solr“加入”

    我不知道这是否有必要。每章只属于一本书,因此我们似乎可以将它们全部放在一个文档中,而不会过多重复。

    动态字段

    例如有像“chapter1text_txt”、“chapter1title_txt”和“chapter2text_txt”这样的字段,并且只连接独立于solr的每章信息,所以solr不知道“chapter1text_txt”、“chapter1title_txt”是同一事物的一部分。

    配置 schema.xml 以支持和搜索此类文档的正确方法是什么?

    最佳答案

    文件结构
    到目前为止,最好的解决方案是对 chapter_title 使用多值字段。和 chapter_text ,并在上传文档中强制执行这些值的一致排序,因此第一个 chapter_title始终对应第一个 chapter_text等等。
    这是schema.xml的部分:

    <field name="report_title"
    type="text_en" indexed="true" stored="true"/>

    <field name="chapter_title"
    type="text_en" indexed="true" stored="true" multiValued="true"/>

    <field name="chapter_text"
    type="text_en" indexed="true" stored="true" multiValued="true"/>
    这是一种妥协,因为索引无法知道 chapter_title 之间的这种关系。和 chapter_text ,因此不可能要求“标题中带有 X 和文本中带有 Y 的章节”。
    匹配计数
    我仍然没有找到这样做的方法,但我正在考虑使用突出显示并在要求覆盖整个文档的一个大片段后计算突出显示的术语的数量。

    关于search - 如何为一对多关系配置 Solr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25602208/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com