Как исправить отсутствие [запроса], зарегистрированного для [поля] в репозитории elasticsearch?

#java #spring-boot #elasticsearch

#java #весенняя загрузка #elasticsearch

Вопрос:

Я хочу найти список продуктов по коллекции идентификаторов поставщиков. Запрос должен быть таким: выберите * из продукта, в котором указан vendorid ({список идентификаторов поставщиков}).

ниже приведен запрос elasticsearch, который я использую:

 @Query("{"bool" : {"must" : {"bool" : {"should" : [ {"field" : {"vendor" : "?"}}, {"field" : {"vendor" : "?"}} ]}}}}")
    List<WarehouseProductDTO> findByVendorIds(List<Long> vendorIds);
  

Когда я запускаю проект, он сообщает, что [запрос] не зарегистрирован для [поля]

Пожалуйста, кто-нибудь может мне помочь?

Ответ №1:

Вам нужно заменить field на terms вот так:

 @Query("{"bool" : {"must" : {"bool" : {"should" : [ {"terms" : {"vendor" : ?0}} ]}}}}")
List findByVendorIds(List vendorIds);