Я пытаюсь реализовать поиск по местоположению из упругого поиска с большей релевантностью, например, адрес начинается со слова «дать строку запроса» или «содержит строку как слово в слове», но я пробовал несколько, но ничего не дало правильных результатов. Может, кто-то посмотрит на запрос и индекс, приложенные ниже, ипредложите мне лучший способ
Запрос:
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"
}
}
}
}
}