我是elasticsearch的新手,在查询时遇到了一些问题。我似乎无法基于“userid”字段执行查询。这是我索引的Map。
{
"testindex" : {
"mappings" : {
"properties" : {
"timestamp" : {
"type" : "date"
},
"content" : {
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
},
"type" : "text"
},
"userid" : {
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
},
"type" : "text"
}
}
},
"aliases" : {},
"settings" : {
"index" : {
"creation_date" : "1605323501230",
"number_of_shards" : "1",
"number_of_replicas" : "1",
"version" : {
"created" : "7090399"
},
"uuid" : "<removed>",
"provided_name" : "testindex"
}
}
}
}
这里是我的集群中的一个文档,当通过文档id检索时。
{
"_index":"testindex",
"_type":"_doc",
"_id":"d757422a-acf4-4ab0-89f5-bb79b2e2c699",
"_version":1,
"_seq_no":1,
"_primary_term":1,
"found":True,
"_source":{
"userid":"9fe3ba41-780f-448d-8c99-c0440a7ba3f0",
"content":"testing, testing 12",
"timestamp":"2020-11-15T05:33:06.615631+00:00"
}
}
下面是一个基于userid字段的查询。
{
"query":{
"bool":{
"should":{
"term":{
"userid":"9fe3ba41-780f-448d-8c99-c0440a7ba3f0"
}
}
}
}
}
我没有得到任何结果,解释输出也没有帮助。
{
"_index":"testindex",
"_type":"_doc",
"_id":"d757422a-acf4-4ab0-89f5-bb79b2e2c699",
"matched":False,
"explanation":{
"value":0.0,
"description":"no matching term",
"details":[
]
}
}
我做错什么了?
1条答案
按热度按时间gzszwxb41#
这个
term
查询正在查找您需要使用的完全匹配项keyword
领域搜索查询:
搜索结果:
使用匹配查询搜索查询:
这个
userid
字段很可能用standard
将生成以下令牌的分析器:所以你可以用上面的
term
查询完全匹配,或者您可以使用match
查询如下图所示