现在进行实际搜索:当然,Elasticsearch 还提供 REST 端点,我在下一个示例中将其定义为示例。为了获得结果列表的相应维度或方面,您必须对结果进行一定程度的分组。 Elasticsearch 有两种方法来执行此过程:
聚合,Facets 的继承者
后者也用在下面所示的示例中。设置为“尺码”属性的过滤器仅显示 XL 尺码的结果。
在查询正文中,除了我们的搜索词之外,还可以定义各种选项,以便根据您的想法格式化搜索结果。如示例中所使用的,这包括用于分页(起始或大小)或用于在各个搜索结果中标记搜索项(突出显示)的选项。
与其他标准 REST API 一样,先前定义的搜索查询的 商业房地产的潜在客户 搜索结果以 JSON 形式返回,并且除了结果之外,还包含其他有趣的属性和信息。当然,这里只输出以下内容:
在查询期间指定并根据您自己的定义进行相应格式化的数据字段(fragment_size、number_of_fragments 等)。
用荧光笔标记的搜索词Facets,一种更古老、更简单的方法
通过这种方式,您可以节省客户端昂贵的渲染费用。此外,您还可以在搜索结果中找到属性的不同方面,并查看各个方面的点击次数。
结论
正如您所看到的,Elasticsearch 具有标准化且描述良好的接口来实现过滤或搜索功能。您还可以在互联网上找到各种应用示例。但您不应该低估总的工作量,因为我描述的示例仅显示了一个案例的摘录。在我看来,在实施之前,您应该始终评估是否有一个库或相应的工具集适合您自己的堆栈并减轻您的工作 - 例如在 Elasticsearch 中索引数据时。在任何情况下,您都不应该尝试使用 Elasticsearch 作为一种持久存储。无法 100% 保证数据保持可用 - 无论是在存储或集群交换机出现问题时。
您想了解更多有关令人兴奋的 IT 主题的信息吗?然后看看我们之前发布的博客文章。