首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Elasticsearch: Ngram标记剂性能

Elasticsearch: Ngram标记剂性能
EN

Stack Overflow用户
提问于 2022-06-21 08:24:41
回答 1查看 81关注 0票数 1

我尝试使用以下简单查询在elasticsearch中搜索文档:

代码语言:javascript
运行
复制
{
    "query": {
        "match": { "name": "Test name" }
    }
}

我的索引里有七千万份文件。我以前使用过空格标记器,它很好。但是现在我开始使用ngram,甚至这个队列至少运行6-7秒。我创建这样的索引:

代码语言:javascript
运行
复制
{
    "mappings": {
        "properties": {
            "name": {
                "type": "text",
                "analyzer": "custom_analyzer"
            }
        }
    },
    "settings": {
        "analysis": {
            "tokenizer": {
                "custom_tokenizer": {
                    "token_chars": [
                        "letter",
                        "digit",
                        "symbol",
                        "punctuation"
                    ],
                    "min_gram": "2",
                    "type": "ngram",
                    "max_gram": "3"
                }
            },
            "analyzer": {
                "custom_analyzer": {
                    "filter": [
                        "lowercase"
                    ],
                    "type": "custom",
                    "tokenizer": "custom_tokenizer"
                }
            }
        }
    }
}

有没有优化搜索的方法?还是说ngram真的那么慢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-21 10:27:22

是的,众所周知,ngram会导致性能问题,因为它会创建许多标记,增加Elasticsearch索引大小和匹配search terms,提高性能的一种方法是只在您真正需要它的查询中使用,例如在fix查询中,如果您共享搜索用例,社区可能会提供其他更好的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72697494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档