Solr dismax Query над несколькими полями
Я пытаюсь сделать solr dismax запрос по нескольким полям, и я немного запутался с синтаксисом.
Мое ядро содержит целый ряд эпизодов подкастов. Поля в индексе: EPISODE_ID, EPISODE_TITLE, EPISODE_DESC и EPISODE_KEYWORDS.
Теперь, когда я делаю запрос, я хотел бы искать термин запроса в полях EPISODE_TITLE, EPISODE_DESC и EPISODE_KEYWORDS, с разными бустами для разных полей.
Поэтому, когда я ищу "джедай", созданный мной запрос выглядит так:
http://localhost:8983/solr/episode_core/select?
&defType=dismax&q=jedi&fl=EPISODE_ID,EPISODE_TITLE,EPISODE_DESC,EPISODE_KEYWORDS
&qf=EPISODE_TITLE^3.0+EPISODE_DESC^2.0+EPISODE_KEYWORDS
Тем не менее, это не похоже на работу - он возвращает ноль записей.
Когда я добавляю поле по умолчанию, как показано ниже, оно теперь работает, но это немного дерьмо, потому что это означает, что я не получаю результаты поиска по всем 3 полям:
http://localhost:8983/solr/episode_core/select?&df=EPISODE_DESC
&defType=dismax&q=jedi&fl=EPISODE_ID,EPISODE_TITLE,EPISODE_DESC,EPISODE_KEYWORDS
&qf=EPISODE_TITLE^3.0+EPISODE_DESC^2.0+EPISODE_KEYWORDS
Есть что-то, чего я здесь не хватает? Я думал, что вы можете искать по нескольким полям, и я думал, что параметр 'qf' будет означать, что вам не нужно указывать параметр поля по умолчанию?
Вся помощь очень ценится...
1 ответ
Ваша идея верна. Если вы определили qf (поля запроса) для Dismax, не нужно указывать df (поле по умолчанию).
Можете ли вы быть более конкретным о том, что не работает?
Кроме того, ознакомьтесь с конфигурационными инвариантами в solrconfig.xml
так как это возможно, ваша конфигурация может посылать некоторые параметры, отличные от указанных в URL.
(Например, если вы видите конкретное сообщение об ошибке с просьбой предоставить df)