我正在使用elasticsearch来构建URL索引.
我将一个URL提取为3个部分,即"域","路径"和"查询".
例如:testing.com/index.html?user=who&pw=no将被分成
domain = testing.com
path = index.html
query = user=who&pw=no
Run Code Online (Sandbox Code Playgroud)
当我想在我的索引中部分搜索域时出现问题,例如"user = who"或"ing.com".
我搜索时是否可以使用"Analyzer",即使我在编制索引时没有使用"Analyzer"?
如何根据分析仪进行部分搜索?
非常感谢你.
2种方法:
"query": {
"query_string": {
"query": "*ing.com",
"default_field": "domain"
}
}
Run Code Online (Sandbox Code Playgroud)
索引设置
"settings" : {
"analysis" : {
"analyzer" : {
"my_ngram_analyzer" : {
"tokenizer" : "my_ngram_tokenizer"
}
},
"tokenizer" : {
"my_ngram_tokenizer" : {
"type" : "nGram",
"min_gram" : "1",
"max_gram" : "50"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
制图
"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"
}
}
Run Code Online (Sandbox Code Playgroud)
查询
"query": {
"match": {
"domain": "ing.com"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2531 次 |
| 最近记录: |