我正在使用elastichsearch 5来存储和搜索一些文档。 在我的文档中,我有一个名为URL的字段,如下所示:
{
//... other fields
"URL": "http://ip:8080/app/addItemToCart.html?workingItemId=X1"
}
我尝试对通配符使用查询,因为我想获取URL中包含单词“ addItemToCart”的所有文档。 这是我的查询:
GET myindex/_search
{
"query" : {
"wildcard" : { "URL" : "*addItemToCart*" }
}
}
它返回零个文档,但是我在弹性搜索中有带有该关键字的文档。
这是我对索引的映射。
GET myindex/_mapping
{
//.... other fields
"URL": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
怎么了?
答案 0 :(得分:1)
如in the documentation所述,通配符查询
匹配具有与通配符表达式(未分析)匹配的字段的文档
因此,您的查询应为:
GET myindex/_search
{
"query" : {
"wildcard" : { "URL.keyword" : "*addItemToCart*" }
}
}