2015-06-05 4 views
0

Я пытался понять это сейчас. Если я создаю схему без директивы:Solr: как мне использовать dismax вместо использования copyField?

<copyField source="*" dest="text" /> 

Я не могу ничего вытащить. Но когда я добавляю эту директиву, вещи волшебным образом появляются. Я пытаюсь выполнить свой запрос с? DefType = dismax, но это, похоже, не помогает.

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

Мысли?

Спасибо!

ответ

0

Если вы используете defType = Lucene необходимо указать поле до вашего поискового запроса, как это:

q=title:test 

Если вы не укажете Solr поле будет использовать поле по умолчанию, указанный в solrconfig.xml. По умолчанию это поле text. Поскольку все поля скопированы в text, поиск работает хорошо. Если вы решите использовать dismax, структура запроса изменится. Вы должны поставить условие поиска так:

q=test 

и указать поля для поиска в других параметрах, как, что:

<str name="qf">field1 field2</str> 

Где field1 и field2 являются полями, которые вы хотите найти термины.