gpt4 book ai didi

Elasticsearch 获取短语在文档中的位置

转载 作者:行者123 更新时间:2023-11-29 02:56:31 24 4
gpt4 key购买 nike

我正在做一个项目,我需要对一本书进行全文搜索。我一次只需要搜索一本书,我需要从书的开头获取搜索词的偏移量。对于由 Django/python 提供支持的网站,我需要它,但我认为 Elasticsearch 更好更快。

到目前为止我还没有直接使用过Elasticsearch,只是通过抽象层django-haystack。

Edit1:我不仅需要为用户显示他们正在搜索的文本,还需要为他们显示指向该文本的链接。基本上它应该像 Mac 预览中的搜索框一样工作。用户看到带有周围文本的搜索结果,如果他们单击它,他们将被 JS 重定向到文本所在的书的一部分。

最佳答案

简单的突出显示就足够了吗?即使不是,一个蛮力解决方案是将突出显示的 pre_tags 设置为可编程可识别的值并计算其偏移量。通过在映射中将 term_vector 设置为 with_positions_offsets 以使用 lucene 的 fast-vector-highlighter 来加快速度:

{
"type_name" : {
"content" : {"term_vector" : "with_positions_offsets"}
}
}

如果不能接受,请查看 this回答有关如何在内部存储偏移量的信息。

编辑:根据您的编辑,我不确定偏移量会有多大帮助。我的意思是,除非您要显示预格式化的文本或其他一些固定布局,否则您如何知道偏移对应于渲染页面上的哪个位置?

我认为最优雅的解决方案是使用 pre_tags 和 post_tags 将匹配的文本包装在元素中。然后使用 JavaScript 为每个匹配分配一个 ID,创建新的片段标识符,您可以为其设置位置。

关于Elasticsearch 获取短语在文档中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18483358/

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