我正在评估客户端的弹性搜索。我已经开始使用API并成功创建了索引并在搜索中添加了文档。使用弹性搜索的主要原因是它提供了facet功能。
我无法理解分析器,标记符和过滤器,以及它们如何适应方面。我希望能够使用关键字,日期,搜索字词等作为我的方面。
我如何将分析器整合到我的搜索中?如何将其与facet一起使用?
答案 0 :(得分:9)
当Elastic Search默认为字符串编制索引时,通常会将它们分解为标记,例如: “狐狸越过墙壁”将被标记为单词“Fox”,“jump”,“over”,“the”,“wall”。
这是做什么的?如果您使用Lucene Query搜索文档,则可能无法获得所需的字符串,因为Elastic Search将自动搜索标记化的单词而不是整个字符串,因此您的搜索结果将受到严重影响。
例如,如果您搜索“Fox跳过墙壁”,您将无法获得任何结果。搜索“福克斯”代替将获得结果。
Analyze API 或分析术语告诉弹性搜索 不 标记索引字符串,以便您可以正确搜索确切的字符串,当你想在整个字符串上做统计方面时,这一点特别有用。
标记符只是将字符串标记为单个单词并将其存储在弹性搜索中。如上所述,可以使用Search API查询这些令牌。
过滤器在您指定的特定条件下创建查询结果的子集,从而帮助您将所需内容与搜索结果中不需要的内容分开。