Solr запрос со списком? - PullRequest
0 голосов
/ 31 марта 2020

Как можно ввести список в запрос solr?

Я пытаюсь выполнить запрос solr, который соответствует списку.

Например, у меня есть структура данных, аналогичная приведенной ниже, где someList - это список, который может содержать любое количество строковых элементов.

{
 someKey:someValue,
 someList: [
  "item1",
  "item2"
 ]
}

Я хочу вернуть все записи с указанными c значениями в someList. Поэтому, если мой запрос q=someKey:* AND someList:items, я должен получать только те записи, список которых someList соответствует списку items в моем запросе.

Я попытался сделать что-то похожее на метод, описанный ниже, но запрос ведет себя так, как будто «*» передается в someList в аннотации запроса. То есть запрос генерируется неправильно как q=someKey:someValue AND someList:*, а не как q=someKey:someValue AND someList:items.

@Query("someKey:?0* AND someList:?1*")
public Page<Results> queryMethod(
        String someValue,
        List<String> items,
        Pageable pageable);

Этот метод находится в интерфейсе, который расширяет SolrCrudRepository.

Как может быть список введен в запрос solr?

1 Ответ

1 голос
/ 31 марта 2020

Вместо передачи List<String> items просто передайте разделенные пробелами значения как:

someList:(item1 item2)

Измените свой метод:

@Query("someKey:?0* AND someList:?1*")
public Page<Results> queryMethod(
        String someValue,
        String items, <<<----
        Pageable pageable);

Для получения подробной информации о запросах в SOLR вы можете обратиться здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...