im пытается использовать elasticsearch для поиска по продуктам. Если у продукта есть автомобиль, например, у него будет поле, такое как «цвет», «бренд», «модель», «км», ... Если это одежда, у нее будут только «цвет», «размер», , ... Я хотел бы проиндексировать всю эту информацию в эластичной форме, чтобы иметь возможность затем искать автомобили с км между aaa км и bbb км и/или модель xxxx, то же самое для одежды или любых других продуктов.различное поле по категориям
Как я могу создать такое поле (ы) в elasticsearch? Я хочу, чтобы все продукты были в одном и том же индексе, поэтому пользователь может выполнять поиск по всем продуктам, но также, если пользователь ищет тип продукта, тогда он должен иметь возможность указать некоторые подробности в соответствии с этим видом продукта.
Я думал о поле массива, но означает ли это, что все продукты будут иметь все поля, соответствующие всем типам продуктов, даже если некоторые поля не имеют отношения к некоторым продуктам (например, одежда будет иметь поле km?)? Или возможно ли при индексировании разместить только необходимую информацию, соответствующую каждому продукту?
спасибо
Благодарим за ответ. Мне кажется, это то, что мне нужно. Но есть ли способ оптимизировать или сделать вид наследования, так как все продукты имеют некоторые общие поля, такие как цена, категория, дата, изображения, ... – user2016483
Нет прямого способа довести вид наследования, который вам нужен, в elasticsearch , но вы можете легко имитировать одно и то же поведение, определяя одни и те же поля во всех типах только один раз на этапе отображения вставки. После определения вставки могут быть сделаны, и поиск может быть выполнен так, как если бы было наследование среди полей. – Sai
Что касается оптимизации процесса, посмотрите http://stackoverflow.com/questions/15694724/shards-and-replicas-in-elsicsearch, а также на объемную индексацию. Всего наилучшего. – Sai