Поисковый запрос Solr для индексируемых динамических полей - PullRequest
10 голосов
/ 02 июня 2011

Я реализую поиск в моем проекте.У меня есть один вопрос относительно того, как мне искать в динамических полях, которые создаются в индексе solr Например: - это тег, который формируется в индексе

И я пытаюсь выполнить поиск в solr с помощью этого запроса Employee_* = 172

Пожалуйста, помогите мне в этом, если неправильный способ поиска.

Ответы [ 2 ]

15 голосов
/ 02 июня 2011

В ваших запросах вам нужно точно указать, какие конкретные поля вы хотите искать, например, Employee_a, Employee_b (или какие динамические поля вы использовали).Вы не можете искать во всех динамических полях, используя подстановочные знаки в имени поля в запросах.

7 голосов
/ 17 июля 2013

Обходной путь:

  • создать (статическое) copyField
  • скопировать динамическое поле в (статическое) copyField
  • запросить copyField

Ваш schema.xml может выглядеть так:

   <dynamicField name="Employee_*" type="string" indexed="true"  stored="true"/>
   <field name="emp_static"  type="string" indexed="true"  stored="true" multiValued="true"/>
   <copyField source="Employee_*"    dest="emp_static"/>

Теперь вы можете запрашивать solr с помощью:

select?q=emp_static:"172"

Вы можете даже настроить его и не сохранять/ индексировать динамическое поле (так как вы можете не запрашивать его ...)

...