Можете да направите това, като създадете втори индекс във вашия ES клъстер. Когато потребител подаде търсене чрез вашето приложение, изпълнявате две стъпки.
- Изпратете търсенето като заявка към Elasticsearch за нормално поведение при търсене.
- Изпратете заявка за индексиране към клъстера с термините за търсене, предоставени от потребителя.
С втори индекс на всички подадени думи за търсене можете да правите редица чисти неща. За вашия случай можете да имате поле „брой“, точно както в SQL, което увеличавате, когато повече хора търсят този термин. Друг страхотен случай на употреба са препоръчаните от Google термини. Вашият потребителски интерфейс може да изпрати заявка за търсене с въведения текст при всяко натискане на клавиш и да попълни падащо меню с посещения от по-рано търсените думи. Можете дори да персонализирате това, като добавите потребителско поле и филтрирате резултатите, които не са от този конкретен потребител.
Нещото, което трябва да имате предвид, е, че ElasticSearch може да се използва както като основно, така и като вторично хранилище на данни. Винаги предлагам да съхранявате като основни данни само данни, които сте готови да загубите (като история на търсенията). Съхранявайте критичните за системата си данни в по-традиционно хранилище за данни като SQL, по този начин е лесно да архивирате и възстановите, ако нещо се обърка!