2012-02-09 28 views
1

的結果優先使用indextank ruby​​gem,如果我索引後這樣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查詢語法的完整文檔? – 2012-04-02 09:16:01

+0

嗨雅羅斯拉夫,這裏是IndexTank查詢語法:http://www.searchify.com/documentation/query-syntax – 2012-04-03 07:04:28

+0

謝謝!在爲http://indexden.com開發IndexTank的API實現時,我沒有提到這個文檔。 – 2012-04-03 07:40:38