1

如果我有很多文档并且想知道“有多少文档中出现了‘rails’这个词”有没有办法从索引中的弹性搜索“轮胎宝石”中获取这些信息?

4

1 回答 1

1

您可以使用 Facets 来制作类似于 SQL 'group-by' 聚合函数的东西,如elasticsearch文档中所述。示例代码如下所示:

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']

希望这可以帮助。

于 2013-10-29T22:25:46.287 回答