Во-первых, я новичок в Elasticsearch, поэтому я пытаюсь понять, как создать интеллектуальное автозаполнение. Итак, моя ситуация такова:
- У меня есть база данных PostgreSql, в которой есть некоторые реестры предложений по недвижимости,
- Я создал службу, которая обновляет эти реестры с некоторой геоинформацией в соответствии с ее расположением в виде типа столбца jsonb;
Итак, я прочитал некоторые статьи с предложением Elasticsearch Completition, чтобы понять, как это работает, и получил заключение проиндексировать документ, на который ссылается таблица моего предложения pgdb, чтобы я мог создать документ с параметрами в текстовом формате, например:
PG TABLE (предложения)
id | address | parks_around
1 |Avenida Diógenes Ribeiro de Lima, 2811 | 2
2 |Avenida Paulista, 1044 | 1
2 |Avenida Ibirapuera, 2899 | 0
и затем, когда я синхронизирую свои записи с Elasticsearch, я могу проиндексировать свой документ следующим образом:
"mappings": {
"offers": {
"properties": {
"external_id": {
"type": "integer"
},
"address": {
"type": "text"
},
"parks": {
"type": "text"
},
}
}
}
затем, наконец, индексируйте некоторые документы с помощью контекстных фраз с помощью массового API:
{index:{}}
{
"external_id": 1,
"address": "Offer in Avenida Diógenes Ribeiro de Lima",
"parks": "Offer with parks around"
}
{index:{}}
{
"external_id": 2,
"address": "Offer in Avenida Paulista",
"parks": "Offer with park around"
}
{index:{}}
{
"external_id": 3,
"address": "Offer in Avenida Ibirapuera",
"parks": null
}
Моя точка зрения такова: должен ли я хранить свои документы как целую фразу, чтобы показывать подсказки по завершению при вводе пользователем?
Может кто-нибудь помочь мне сказать, далеко ли это от идеального решения?
Заранее спасибо.