精确的多词匹配
Exact multi term match
我无法在 Elasticsearch 中进行搜索。我试图找到一个匹配多个术语的结果。看起来很简单,但我找不到正确的方法。
要使用单个字词进行搜索,我将启动以下搜索:
{
"query":
"term": {
"name. keyword."
"value":"Will"
}
}
}
}
效果很好。
为了使用多个字词进行搜索,我尝试了很多方法,如下所示,这在我的脑海中最有意义:
{
"query":
"term":[{{
"name. keyword."
"value":"Will"
}
}, {
"lastname. keyword."
"value":"Smith"
}
}]
}
}
但它 returns 一个错误。在最好的情况下,我已经设法让所有的 Will 和所有的 Smith 回来,其中 "Will Smith",谁是我一直在寻找的人,但我想摆脱所有不满足的人要求。
我的映射如下:
{
"dataset": {
"mappings": {
"data": {
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"lastname": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}
是否有可能得到我想要做的事情?
尝试 Bool Query:
{
"query": {
"bool": {
"must": [
{
"term": {
"name.keyword": "Will"
}
},
{
"term": {
"lastname.keyword": "Smith"
}
}
]
}
}
}
我无法在 Elasticsearch 中进行搜索。我试图找到一个匹配多个术语的结果。看起来很简单,但我找不到正确的方法。
要使用单个字词进行搜索,我将启动以下搜索:
{
"query":
"term": {
"name. keyword."
"value":"Will"
}
}
}
}
效果很好。
为了使用多个字词进行搜索,我尝试了很多方法,如下所示,这在我的脑海中最有意义:
{
"query":
"term":[{{
"name. keyword."
"value":"Will"
}
}, {
"lastname. keyword."
"value":"Smith"
}
}]
}
}
但它 returns 一个错误。在最好的情况下,我已经设法让所有的 Will 和所有的 Smith 回来,其中 "Will Smith",谁是我一直在寻找的人,但我想摆脱所有不满足的人要求。
我的映射如下:
{
"dataset": {
"mappings": {
"data": {
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"lastname": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}
是否有可能得到我想要做的事情?
尝试 Bool Query:
{
"query": {
"bool": {
"must": [
{
"term": {
"name.keyword": "Will"
}
},
{
"term": {
"lastname.keyword": "Smith"
}
}
]
}
}
}