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)

Другие вопросы по тегам