Реализация стартов с и как слово в упругом поиске - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь реализовать поиск по местоположению из упругого поиска с большей релевантностью, например, адрес начинается со слова «дать строку запроса» или «содержит строку как слово в слове», но я пробовал несколько, но ничего не дало правильных результатов. Может, кто-то посмотрит на запрос и индекс, приложенные ниже, ипредложите мне лучший способ

Запрос:

GET locations/locations/_search
{
 "query": {
   "bool": {
     "filter": {
       "bool": {
         "must": [

           {
             "bool": {
               "should": [
                 {
                   "match_phrase": {
                     "addressLowerCase": {
                       "query": "manyata "
                     }
                   }
                 },
                 {
                   "match_phrase": {
                     "addressLowerCase": {
                       "query": "manyata,"
                     }
                   }
                 },
                 {
                   "regexp": {
                     "addressLowerCase": {
                       "value": "manyata tech park.*"
                     }
                   }
                 }
               ]
             }
           }
         ]
       }
     }
   }
 },
 "size": 10
}

Индекс:

PUT locations
{
  "settings": {
    "number_of_shards": 15,
    "auto_expand_replicas": "0-1"
  },
  "mappings": {
    "locations": {
      "properties": {
        "centerLat": {"type": "keyword"},
        "centerLng": {"type": "keyword"},
        "addressLowerCase": {
            "type": "text",
            "index": "true"
        },
         "address": {
            "type": "keyword",
            "index": "false"
        },
        "name": {"type": "keyword"},
        "placeId": {"type": "keyword"},
        "creationDate": {
            "type": "keyword",
            "index": "false"
        }
      }
    }
  }
}
...