gpt4 book ai didi

elasticsearch - 分析字段与doc_values:真实字段

转载 作者:行者123 更新时间:2023-12-03 00:54:48 25 4
gpt4 key购买 nike

我们有一个Elasticsearch,其中包含超过五十亿个文档,每个文档都有一个存储URL的url字段。

url字段映射当前具有以下设置:

{
index: not_analyzed
doc_values: true
...
}

我们希望我们的用户能够搜索URL或部分URL,而不必使用通配符。
例如,采用带有路径的URL: /part1/user@site/part2/part3.ext
他们应该能够通过搜索返回匹配的文档:
  • part3.ext
  • user@site
  • part1
  • part2/part3.ext

  • 在我看来,我们有两种选择:
  • 实现此字段的分析版本(不再具有doc_values: true),并进行匹配查询而不是通配符。这还需要使用自定义分析器来利用模式标记器,使提取的术语正确(标准标记器会将user@site分为usersite)。
  • 浏览我们的数据库,并为每个文档创建一个新字段,该字段是URL部分的列表。该字段可能仍具有doc_values: true,因此将被堆外存储,我们可以对确切的字段值而不是通配符进行术语查询。

  • 我的问题是:

    哪个对性能更好:具有 doc_values启用的可变长度列表或具有分析字段? (即:选项1或选项2)还是有一个选项3会更好?

    谢谢你的帮助!

    最佳答案

    您的问题是关于一个需要doc_values但不能使用keyword-analyzer进行索引的字段。

    您没有提到为什么需要doc_values。但是您确实提到您当前未在此字段中搜索。
    因此,我猜想搜索字段的名称不必相同:您可以在另一个仅用于搜索的字段中copy字段值(“store”:false)。对于这个新字段,您可以将pattern-analyzerpattern-tokenizer用于您的用例。

    关于elasticsearch - 分析字段与doc_values:真实字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46057454/

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