gpt4 book ai didi

elasticsearch - 在 ElasticSearch 中使用分析器进行部分搜索

转载 作者:行者123 更新时间:2023-12-02 22:16:13 26 4
gpt4 key购买 nike

我正在使用elasticsearch来构建URL索引。

我将一个 URL 提取为 3 个部分,即“域”、“路径”和“查询”。

例如:testing.com/index.html?user=who&pw=no将被分隔成

domain = testing.com
path = index.html
query = user=who&pw=no

当我想在索引中部分搜索域(例如“user=who”或“ing.com”)时出现问题。

即使我在索引时没有使用“Analyzer”,搜索时是否可以使用“Analyzer”?

如何根据分析器进行部分搜索?

非常感谢。

最佳答案

两种方法:

1。通配符搜索 - 简单但缓慢

"query": {
"query_string": {
"query": "*ing.com",
"default_field": "domain"
}
}

2。使用 nGram 分词器 - 更难但更快

索引设置

"settings" : {
"analysis" : {
"analyzer" : {
"my_ngram_analyzer" : {
"tokenizer" : "my_ngram_tokenizer"
}
},
"tokenizer" : {
"my_ngram_tokenizer" : {
"type" : "nGram",
"min_gram" : "1",
"max_gram" : "50"
}
}
}
}

映射

"properties": {
"domain": {
"type": "string",
"index_analyzer": "my_ngram_analyzer"
},
"path": {
"type": "string",
"index_analyzer": "my_ngram_analyzer"
},
"query": {
"type": "string",
"index_analyzer": "my_ngram_analyzer"
}
}

查询

"query": {
"match": {
"domain": "ing.com"
}
}

关于elasticsearch - 在 ElasticSearch 中使用分析器进行部分搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17940026/

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