Как запросить вложенный объект эластичного поиска с помощью запроса нечеткости и подстановочного знака
{
"took":1,
"timed_out":false,
"_shards":{
"total":5,
"successful":5,
"skipped":0,
"failed":0
},
"hits":{
"total":1,
"max_score":1,
"hits":[
{
"_index":"event_11",
"_type":"_doc",
"_id":"1",
"_score":1,
"_source":{
"title":"Event One",
"comments":{
"author":"Alvin",
"author_id":1
}
},
"inner_hits":{
"comments":{
"hits":{
"total":1,
"max_score":1,
"hits":[
{
"_index":"event_11",
"_type":"_doc",
"_id":"1",
"_nested":{
"field":"comments",
"offset":0
},
"_score":1,
"_source":{
"author":"Alvin",
"author_id":1
}
}
]
}
}
}
}
]
}
}
Я пытаюсь запросить вышеуказанные данные с помощью нижеуказанного подстановочного запроса:
GET event_11/_search
{
"query": {
"nested": {
"path": "comments",
"query": {
"wildcard": {
"comments.author": "Al*"
}
}
}
}
}
Приведенный выше запрос дает пустой набор результатов. Может ли кто-нибудь помочь мне исправить поисковый запрос, используя подстановочные знаки и нечеткость? Я использую ElasticSearch 6 и Kibana для создания своих запросов. PHP SDK используется для написания запросов из приложения PHP.
1 ответ
Вы можете попробовать это.
{
"query": {
"nested": {
"path": "comments",
"query": {
"bool": {
"should": [
{
"wildcard": {
"comments.author": "real*"
}
},
{
"match": {
"comments.author": {
"query": "reaa",
"fuzziness": "AUTO"
}
}
}
]
}
}
}
}
}