我是Ruby on Rails的新手,以及Elasticsearch。我正在尋找一些有用的信息來幫助我將Elasticsearch的gem實現到我正在開發的應用程序中。如何使用Elasticsearch ruby gems創建Ruby on Rails 4.1應用程序
應用程序需要能夠理想地使用Ajax來搜索和過濾結果。我已經閱讀了自述文檔的指南,文檔和示例,但是有些東西我無法弄清楚,或者確認我是否採取了正確的方法。
我有索引內創建的結果,我也有結果出來。我主要關注的是聚合,過濾器和方面工作,這些標準的約定是什麼?
我正在尋找一些關於從視圖中獲取此信息的方式。
我想實現一個特別的東西,是有稱爲發佈日期選擇框,有幾個選項:
- 隨時
- 今天(20)
- 最後三天(50)
- 上週(100)
中的數字表示編號屬於這個方面的文件?或聚合或過濾? - 不確定哪個是最好用的。
我還希望基於可能存在的其他過濾選項(即查詢)更新數字。
下面是一些代碼:
型號/顧慮/ searchable.rb(已包括在我的模型)
def self.search(query, options={})
__set_filters = lambda do |key, f|
@search_definition[:filter][:and] ||= []
@search_definition[:filter][:and] |= [f]
@search_definition[:facets][key.to_sym][:facet_filter][:and] ||= []
@search_definition[:facets][key.to_sym][:facet_filter][:and] |= [f]
end
@search_definition = {
query: {},
filter: {}
}
unless query.blank?
@search_definition[:query] = {
bool: {
should: [
{
multi_match: {
query: query,
fields: ['title^10', 'content'],
operator: 'and'
}
}
]
}
}
else
@search_definition[:query] = { match_all: {} }
@search_definition[:sort] = { created_at: 'desc' }
end
if options[:offset]
f = {
numeric_range: {
created_at: {
gte: "now-5d"
}
}
}
end
__elasticsearch__.search(@search_definition)
end
Controller.rb
options = {
offset: params[:datecreatedoffset],
}
@jobs = Job.search(params[:q], options).results
respond_with @jobs
任何幫助,非常感謝。謝謝。
謝謝,我已經看過這個,仍然看着這個,但我正在尋找一些教程和指南爲這個寶石寫的。一些東西向我展示瞭如何通過從視圖開始一直到整合過濾器(例如)以及其他事物(例如構面等)。我似乎無法找到任何涉及該類細節的信息 –
@DeanAnthonyFields - 推薦異地資源超出了論壇的範圍:http://meta.stackexchange.com/questions/139399/what-exactly-is-a-recommendation-question –
謝謝,我已經更新了這個問題更具體我希望 –