IndexTank - как расставить приоритеты в результате запроса - PullRequest
1 голос
/ 09 февраля 2012

Используя indextank rubygem, если я индексирую пост, подобный этому

indexes.document(post.id).add({:title=> post.title, :text=> post.body})

Как должен выглядеть мой запрос так, чтобы совпадения title возвращались до совпадения body.Делая это:

indexes.search("title:#{query} OR text:#{query}", :snippet=> :text)

возвращает все совпадения, упорядоченные от самых новых к самым старым.

Спасибо.

1 Ответ

2 голосов
/ 10 февраля 2012

Как определяется ваша функция оценки 0?По умолчанию это «-age», что означает «сначала самое последнее».Для релевантности текста вы можете заменить функцию оценки на «rel», что означает релевантность текста.

Я не знаю способа гарантировать, что каждое совпадение заголовка гарантированно будет выше остальных, но вызначительно увеличьте заголовок, добавив «^ 10» к заголовочной части запроса.Вот пример:

title:potter^10 text:whatever

Это означает, что совпадения заголовков в 10 раз превышают совпадения для поля «текст».При необходимости вы можете увеличить число «10».

...