我正在使用Elasticsearch构建URL索引。
我将一个URL提取为3个部分,分别是“域”,“路径”和“查询”。
例如:testing.com/index.html?user=who&pw=no将分为
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”?
如何基于分析仪进行部分搜索?
非常感谢你。
2种方法:
"query": { "query_string": { "query": "*ing.com", "default_field": "domain" } }
索引设定
"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" } }