如果我有很多文档,并且想知道““rails”一词出现在多少文档中”
有没有办法从索引中的Elasticsearch“轮胎 gem ”中获取此信息?
最佳答案
您可以使用Facets进行类似于SQL“分组依据”聚合函数的操作,如elasticsearch文档中here所述。
示例代码如下所示:
index_name = "documents" # name of your index
search_word = 'rails' # word searching for
field_name = 'document_text' # field to search in
search = Tire.search index_name do
query do
string "#{field_name}:#{search_word}"
end
facet 'ids-facets', :global => false do
terms :id
end
end
document_ids = search.results.facets['ids-facets']['terms']
希望这可以帮助。