Как запросить вложенный объект эластичного поиска с помощью запроса нечеткости и подстановочного знака - PullRequest
0 голосов
/ 07 декабря 2018
{  
   "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 Ответ

0 голосов
/ 07 декабря 2018

Вы можете попробовать это.

  {
    "query": {
      "nested": {
        "path": "comments",
        "query": {
          "bool": {
            "should": [
              {
                "wildcard": {
                  "comments.author": "real*"
                }
              },            
              {
                "match": {
                  "comments.author": {
                    "query": "reaa",
                    "fuzziness": "AUTO"
                  }
                }
              }
            ]
          }
        }
      }
    }
  }
...