gpt4 book ai didi

elasticsearch - 处理 ElasticSearch 中的点

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

我有一个名为 summary 的字符串属性有 analyzer设置为 trigramssearch_analyzer设置为 words .

"filter": {
"words_splitter": {
"type": "word_delimiter",
"preserve_original": "true"
},
"english_words_filter": {
"type": "stop",
"stop_words": "_english_"
},
"trigrams_filter": {
"type": "ngram",
"min_gram": "2",
"max_gram": "20"
}
},
"analyzer": {
"words": {
"filter": [
"lowercase",
"words_splitter",
"english_words_filter"
],
"type": "custom",
"tokenizer": "whitespace"
},
"trigrams": {
"filter": [
"lowercase",
"words_splitter",
"trigrams_filter",
"english_words_filter"
],
"type": "custom",
"tokenizer": "whitespace"
}
}

我需要输入中给出的查询字符串,例如 React and HTML (或 React, html )正在匹配包含在 summary 中的文档单词React , reactjs , react.js , html , html5 .随着他们拥有的匹配关键字越多,他们的分数就越高(我希望在理想情况下,只有一个词匹配度甚至达不到 100% 的文档的分数会更低)。

事情是,我猜现在react.js分为reactjs因为我得到了所有包含 js 的文档以及。另一方面,Reactjs什么都不返回。我也觉得需要words_splitter为了忽略逗号。

最佳答案

您可以使用关键字标记过滤器和定义分析器来解决名称如 react.js 的问题,以便它使用关键字过滤器。这将防止 react.js 被拆分为 reactjs 标记。

这是过滤器的示例配置:

     "filter": {
"keywords": {
"type": "keyword_marker",
"keywords": [
"react.js",
]
}
}

分析器:

     "analyzer": {
"main_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"keywords",
"synonym_filter",
"german_stop",
"german_stemmer"
]
}
}

您可以使用分析命令查看您的分析器是否按要求运行:

GET /<index_name>/_analyze?analyzer=main_analyzer&text="react.js is a nice library"

这应该返回以下标记,其中 react.js 未标记:

{
"tokens": [
{
"token": "react.js",
"start_offset": 1,
"end_offset": 9,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "is",
"start_offset": 10,
"end_offset": 12,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "a",
"start_offset": 13,
"end_offset": 14,
"type": "<ALPHANUM>",
"position": 2
},
{
"token": "nice",
"start_offset": 15,
"end_offset": 19,
"type": "<ALPHANUM>",
"position": 3
},
{
"token": "library",
"start_offset": 20,
"end_offset": 27,
"type": "<ALPHANUM>",
"position": 4
}
]
}

对于与 React.jsReactjs 相似但不完全相同的词,您可以使用同义词过滤器。您是否有一组固定的要匹配的关键字?

关于elasticsearch - 处理 ElasticSearch 中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38570124/

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