2012-02-09 7 views
1

Использование indextank rubygem, если индекс I пост как этотIndexTank - Как определить приоритеты результата запроса

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

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

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

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

спасибо.

ответ

2

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

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

title:potter^10 text:whatever

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

+0

Привет Крис, я мог бы найти полную документацию синтаксиса запроса IndexTank? –

+0

Привет, Ярослав, вот синтаксис запроса IndexTank: http://www.searchify.com/documentation/query-syntax –

+0

Спасибо! Я не упоминал этот документ при разработке API-интерфейса IndexTank для http://indexden.com. –

 Смежные вопросы

  • Нет связанных вопросов^_^