Эластичный поиск match_phrase + нечеткость - PullRequest
0 голосов
/ 06 декабря 2018

Я использую ElasticSearch и пытаюсь реализовать match_phrase / string + fuzziness, но кажется, что это невозможно (не так много примеров в Интернете, таких случаев в документации нет).

Что мне нужно: совпадение фразы / строки + нечеткость + наклон в зависимости от каждого значения поля в отдельности.

То, что я пробовал до сих пор (и у меня до сих пор нет решенияМне нужно):

query_string - в нем есть нечеткость и помои включены.Тем не менее, он собирает строку через все значения поля в одном документе.

match_phrase - в него включен отстой, но нет размытости.Что хорошо - он ищет совпадение фразы хотя бы в одном из значений поля, а не собирает строку через все значения поля документа.

Что мне нужно:

У кого-нибудь есть опыт сопоставления фраз, включая нечеткость в ElasticSearch?

Заранее спасибо.

1 Ответ

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

Вы можете использовать для этого Span Queries , как я уже упоминал в ссылках в разделе комментариев вопроса.

То, что вы ищете дальше, - это способ управления нечеткостью с помощью Span Queries.Я взял пример из этого SOF ответа и переписал запрос так, как вы хотели управлять нечеткостью.

Запрос

POST <your_index_name>
{  
   "query":{  
      "bool":{  
         "must":[  
            {  
               "span_near":{  
                  "clauses":[  
                     {  
                        "span_multi":{  
                           "match":{  
                              "fuzzy":{  
                                 "name":{  
                                    "value":"champions",
                                    "fuzziness":2
                                 }
                              }
                           }
                        }
                     },
                     {  
                        "span_multi":{  
                           "match":{  
                              "fuzzy":{  
                                 "name":{  
                                    "value":"league",
                                    "fuzziness":2
                                 }
                              }
                           }
                        }
                     }
                  ],
                  "slop":0,
                  "in_order":false
               }
            }
         ]
      }
   }
}

Надеюсь, это поможет!

...