Подтвердить что ты не робот

База данных Elasticsearch и NoSql

В чем заключается использование как ElasticSearch, так и разделенной базы данных Nosql? Нельзя ли использовать Elasticsearch как в качестве базы данных, так и для индексации поиска?

4b9b3361

Ответ 1

Да, вы можете использовать ElasticSearch как источник данных, а также индекс.

По умолчанию каждый документ, который вы отправляете в систему ElasticSearch, является индексом, а также сохраняется исходный документ. Это означает, что всякий раз, когда вы запрашиваете ElasticSearch, вы также можете получить исходный документ JSON, который вы проиндексировали.

Если у вас большие документы и вы хотите получить меньший объем данных, тогда, когда вы можете использовать API сопоставления, чтобы установить "store" в "yes" для определенных полей, а затем используйте клавишу "fields" чтобы вытащить определенные поля, которые вы, возможно, захотите.

В моей системе у меня есть автозаполнение адресов, и я получаю только поле адреса свойства. Вот пример из моей системы:

_search?q=FullAddress:main&fields:FullAddress

Затем, когда пользователь выбирает адрес, я вытягиваю весь документ JSON (вместе с другими). ​​

Примечание:

  • Вы не можете делать обновления, как вы можете в SQL (обновите все элементы, соответствующие запросу, чтобы увеличить атрибут, скажем)
  • Однако вы можете добавить новый документ и заменить существующий на ID, который хотите обновить. Эластичный поиск увеличивает свойство _version для каждого документа, который может быть использован разработчиком для обеспечения оптимистического concurrency, но он не поддерживает отдельную историю версий каждого документа. Вы можете получить только самую последнюю версию документа.