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 для запросов функций.

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