gpt4 book ai didi

elasticsearch - 当大量文档匹配时,elasticsearch ngram变慢

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

在此示例中,当您键入功能时,我正在实现搜索:
Edge NGram with phrase matching

我觉得查询时间与匹配文档的数量有关,即使我只请求前5个文档。

我的索引有3.2亿份文档。当我的查询为“l”时,有600万个文档与查询匹配,并且需要22毫秒来运行查询。但是,当我的查询为“a”时,有1.33亿份文档与该查询匹配,并且需要400毫秒。同样,我只要求获得前5名文件。

请参阅下面的索引定义和查询。

我正在尝试使所有查询少于100毫秒。我该如何实现?我想念什么?

这是我的索引定义:

`

PUT /ss
{
"settings": {
"analysis": {
"filter": {
"english_poss_stemmer": {
"type": "stemmer",
"name": "possessive_english"
},
"edge_ngram": {
"type": "edgeNGram",
"min_gram": "1",
"max_gram": "25",
"token_chars": [
"letter",
"digit"
]
}
},
"analyzer": {
"edge_ngram_analyzer": {
"filter": [
"lowercase",
"english_poss_stemmer",
"edge_ngram"
],
"tokenizer": "standard"
},
"my_standard": {
"filter": [
"lowercase",
"english_poss_stemmer"
],
"tokenizer": "standard"
}
}
}
},
"mappings": {
"ss": {
"_all": {
"enabled": false
},
"properties": {
"name": {
"search_analyzer": "my_standard",
"analyzer": "edge_ngram_analyzer",
"type": "text"
},
"type": {
"search_analyzer": "keyword",
"analyzer": "keyword",
"type": "text"
},
"tax_id": {
"search_analyzer": "keyword",
"analyzer": "keyword",
"type": "text"
}
}
}
}
}

`

这是我的查询:
GET /ss/_search
{
"from": 0,
"size": 5,
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"match_phrase": {
"name": "a"
}
}
}
}
}

最佳答案

我没有在克1中看到任何要点,我认为将克限制为6是有意义的。

你有:

"min_gram": "1"
"max_gram": "25"

最好有:
"min_gram": "2"
"max_gram": "6"

关于elasticsearch - 当大量文档匹配时,elasticsearch ngram变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47426342/

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