gpt4 book ai didi

elasticsearch - Elasticsearch中的 `ngram`过滤器和 `ngram` token 生成器之间是否存在性能差异

转载 作者:行者123 更新时间:2023-12-03 00:47:17 27 4
gpt4 key购买 nike

我都尝试过,当我测试分析仪时它们似乎产生相同的结果

settings: {
analysis: {
filter: {
ngram_filter: {
type: "ngram",
min_gram: 2,
max_gram: 20
}
},
tokenizer: {
ngram_tokenizer: {
type: "ngram",
min_gram: 2,
max_gram: 20
}
},
analyzer: {
index_ngram: {
type: "custom",
tokenizer: "keyword",
filter: [ "ngram_filter", "lowercase" ]
},
index_ngram2: {
type: "custom",
tokenizer: "ngram_tokenizer",
filter: [ "lowercase" ]
},
},
}
}

我做同样的结果:
curl -X GET "localhost:9200/my_index/_analyze?pretty" -H 'Content-Type: application/json' -d'
{
"analyzer": "index_ngram",
"text": "P&G 40-Bh"
}
'


curl -X GET "localhost:9200/my_index/_analyze?pretty" -H 'Content-Type: application/json' -d'
{
"analyzer": "index_ngram2",
"text": "P&G 40-Bh"
}
'

我应该使用哪一个?有性能差异吗?看起来他们只是按照不同的顺序进行操作,但是我不确定哪个性能更高,或者哪个更好。

最佳答案

很难权衡性能差异,因为我自己还没有遇到过这种特殊情况,而是尝试针对大量不同的示例文本集进行尝试。但是,我认为将此类分析器应用于大量文本并不是一个好主意,因此我认为这不是常见的用例。如果我不得不猜测,我会猜测性能非常相似。在每种情况下,分析过程都必须在相同长度的文本上进行窗口显示,并且正如您所指出的,它必须发出一组相同的标记(忽略报告的不同标记偏移量)。我还使用了personal visualizer来观察这一点。

我将使用更简单,更简洁的分析器描述(ngram标记器),而不是使用回旋关键字标记器(“noop”标记器)并定义一个额外的ngram过滤器。将来可能更容易证明,理解和解释。

相关引用:

  • How to search for a part of a word with ElasticSearch
  • https://qbox.io/blog/an-introduction-to-ngrams-in-elasticsearch
  • 关于elasticsearch - Elasticsearch中的 `ngram`过滤器和 `ngram` token 生成器之间是否存在性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58573372/

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