假设我有以下结构的文件。
{
"text": "This is the road I mentioned",
"created_at": "2015-01-11T05:30:36.000Z",
"language": "en",
"character_count": 25,
"userInfo": {
"id": 553669398108446700,
"user_id": 2803103316,
"user_screen_name": "blue555555"
}
}
我需要在“text”字段中搜索关键字“road”,在“user_screen_name”字段中搜索另一个关键字“blue555555”。这基本上是在多个字段上搜索,我怎么能在elasticsearch中做到这一点?
答案 0 :(得分:1)
您可以在match
查询中使用term
和bool/must
个查询的组合,以便两个约束匹配。
{
"query": {
"bool": {
"must": [
{
"match": {
"text": "road"
}
},
{
"term": {
"userInfo.user_screen_name": "blue555555"
}
}
]
}
}
}
答案 1 :(得分:1)
由于其中一个搜索是查询行为而另一个是过滤行为,我建议过滤查询。
{
"query": {
"filtered": {
"query": {
"match": {
"text": "road"
}
},
"filter": {
"term": {
"userInfo.user_screen_name": "blue555555"
}
}
}
}
}