Apache Solr неопределенное поле оценки поля в запросе функции
Я использую Solr 4.10. Я должен изменить релевантность документов на основе повышения поля и оценки документа. Для этого я узнал, что должен использовать функцию query. Ниже приводится синтаксис поля наддува в схеме.
<field name="boost" type="float" stored="true" indexed="false" default="1.0"/>
Мой первый вопрос: можно ли использовать функциональные запросы только для сохраненных полей?
Когда я пытаюсь использовать вышеуказанную схему, как следующий запрос
http://localhost:8983/solr/select?q=bank&df=keywords&fl=id&sort=pow(score,%20boost)%20asc
Произошла какая-то ошибка:
sort param could not be parsed as a query, and is not a field that exists in the index:
Затем я изменил схему, как
<field name="boost" type="float" stored="true" indexed="true" default="1.0"/>
Тогда выше проблема исчезла, но новая ошибка появилась для запроса
http://localhost:8983/solr/select?q=bank&df=keywords&fl=id,pow(score,%20boost)
Появилась следующая ошибка
<lst name="error">
<str name="msg">undefined field: "score"</str>
<int name="code">400</int>
</lst>
Где я не прав? Правильно ли я изменить атрибуты поля наддува?
1 ответ
Я бы порекомендовал использовать функцию повышения и сортировать только по количеству очков (по умолчанию = параметр заказа не требуется).
bf=linear(boost,100,0)
Вы можете использовать другие функции. Это зависит от вашего варианта использования. Просто посмотрите документацию solr для запросов функций.