Нет фиксированного типа в индексировании эластичного поиска - PullRequest
0 голосов
/ 17 октября 2018

Я все еще учусь на эластичном поиске.Я хотел бы знать, если есть способ, где тип значения конкретного ключа не является фиксированным, можем ли мы по-прежнему индексировать его?

например, firstName может быть "xyz", и это также может бытьобъект в другом документе того же типа, и существует огромная комбинация таких полей, у которых все могут иметь строку или объект в качестве значения, поэтому я не могу выделить строку один и объект один в разных индексах.

Спасибо

1 Ответ

0 голосов
/ 17 октября 2018

Elasticsearch не поддерживает это.

Elasticsearch имеет функции для "автоматического определения", какой должен быть тип поля.Однако в первый раз, когда он видит поле, он сделает свое предположение, и затем каждая последующая запись, имеющая это поле, должна будет соответствовать.

В вашем случае, если запись, где firstName была строкойсначала был проиндексирован, а затем все записи, где firstName является объектом, будут выдавать ошибку при попытке проиндексировать их в Elasticsearch.Если объект был проиндексирован первым, все записи, в которых firstName является строкой, потерпят неудачу.

Elasticsearch разработан, чтобы помочь вам быстро начать работу, но, в конечном счете, ярлыка нет, и вам придется:

  • Разработка схемы, которая указывает правильные настройки Elasticsearch для использования для каждого поля
  • Выполните работу в своем коде, которая импортирует записи в Elasticsearch, чтобы принять решение о том, как вы хотите их импортировать
...