elasticsearch 按多个字段匹配的查询
我是弹性搜索的新手,我想写一个关于两个字段的查询。我的意思是字段的内容包含指定的子字符串。我有一个包含字段的文档,如下所示:elasticsearch 按多个字段匹配的查询,elasticsearch,nosql,elasticsearch,Nosql,我是弹性搜索的新手,我想写一个关于两个字段的查询。我的意思是字段的内容包含指定的子字符串。我有一个包含字段的文档,如下所示: name: n tag: t { "query": { "bool": { "must": [ { "match": { "name": "n" } }, { "match": { "tag"
name: n
tag: t
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "n"
}
},
{
"match": {
"tag": "t"
}
}
]
}
}
}
我试过这个:
/_search -d '
{
"query": {
"match": {
"name": "n",
"tag": "t"
}
}
}
但是查询会导致以下错误:
[匹配]以简化形式解析的查询,具有直接字段名,但
包含的选项不仅仅是字段名,还可能使用
“选项”窗体,带有“查询”元素
在elasticsearch中有没有办法做到这一点?您需要在
bool/must
查询中包含两个match
查询,如下所示:
name: n
tag: t
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "n"
}
},
{
"match": {
"tag": "t"
}
}
]
}
}
}
如何从我的每个字段中获得最少数量的记录(比如至少5条)。该查询似乎只在所有字段中都有值时匹配,而不是在其中一个字段中找到值时匹配。Matthewden这不是OP的需要。但是如果您有不同的需要,请随意创建一个新问题,或者,如果您想要的是just或semantics,那么只需将
must
替换为should
,并添加minimum\u should\u match:1
即可