gpt4 book ai didi

elasticsearch - ElasticSearch Analyzer:有没有办法删除索引中出现的相同单词?

转载 作者:行者123 更新时间:2023-12-03 01:56:02 27 4
gpt4 key购买 nike

我正在使用带有自定义索引和搜索分析器的ElasticSearch。
我正在查询用户数据,有时在字符串中也有相同的情况。

示例:“Hello World,您好,先生!”在这里您可以看到2次“Hello”。

如果我正在搜索“Hello World”,则“Hello World Hello Mr!”会得到更好的分数。而不是“Hello World”。我不希望这种行为,即使这是合乎逻辑的。

因此,是否可以在建立索引时删除出现的相同单词?示例:“Hello World,您好,先生!” =>“世界您好先生!”

我当前的映射和设置:

  settings index: { number_of_shards: 1, number_of_replicas: 1 }, analysis: {
analyzer: {
custom_analyzer: {
tokenizer: "custom_tokenizer",
filter: ["lowercase", "asciifolding", "custom_spliter"]
}
},
filter: {
custom_spliter: {
type: "word_delimiter",
preserve_original: "true"
}
},
tokenizer: {
custom_tokenizer: {
type: "nGram",
min_gram: "3",
max_gram: "3",
token_chars: [ "letter", "digit" ]
}
}
} do
mappings dynamic: 'false' do
indexes :searchable, analyzer: "custom_analyzer"
end
end

是否可以这样做?

最佳答案

您可以将unique token filter 添加到分析器中以实现此目的。
它允许进行配置,以便您可以删除出现在相同位置(例如:同义词)或任何位置的重复 token 。

关于elasticsearch - ElasticSearch Analyzer:有没有办法删除索引中出现的相同单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36603488/

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