购物网站html模板下载,北京网站建设 专业10年,ghost 卸载wordpress,亳州建设网站上一篇咱们了解了 ES 7.10 相较于 ES 6.8 新增的字段类型#xff0c;这一篇我们继续了解新增的查询方法。
Interval 间隔查询#xff1a;
功能介绍
Interval 查询#xff0c;词项间距查询#xff0c;可以根据匹配词项的顺序、间距和接近度对文档进行排名。主要解决的查询…上一篇咱们了解了 ES 7.10 相较于 ES 6.8 新增的字段类型这一篇我们继续了解新增的查询方法。
Interval 间隔查询
功能介绍
Interval 查询词项间距查询可以根据匹配词项的顺序、间距和接近度对文档进行排名。主要解决的查询场景“创建一个多搜索词匹配的查询同时保留搜索词的顺序”比 match phrase 更加符合需求场景查询方法使用比 span 查询更简单。ES 后续版本想用 interval 查询逐步替代 span 查询。
注意事项
规则组合
可以使用 prefix、wildcard、fuzzy 等规则通过设置 max_gaps 和 ordered 参数可以控制词项间的最大间隙和顺序要求。
性能考虑
间隔查询比简单的词项匹配更消耗资源嵌套规则越多性能开销越大建议合理使用 maxGaps 参数限制间距
使用限制
只能用于 text 字段不支持跨字段查询不支持对数值类型字段使用
Distance feature 查询
功能说明
时间/地理距离特性查询该查询用于查找更接近被查询日期和地理位置的结果。 日期和位置分别是声明为 date 和 geo_point 数据类型的字段。返回结果的字段值不需要完全等于被查询值而是按照给定日期或给定位置的进度算分越是接近被查询值在相关性得分中被评为更高。
字段类型要求
日期字段必须是 date 类型地理位置字段必须是 geo_point 类型不支持其他类型的距离计算
评分机制
距离越近得分越高使用 boost 参数调整权重可以与其他查询组合使用
性能考虑
地理距离计算较为耗费资源建议使用合适的索引优化地理查询比如考虑使用地理网格索引提升性能
Pinned 查询
功能说明
实现对某些文档的置顶功能使用存储在_id 字段中的文档 ID 来标识升级或“固定”的文档。 此功能通常用于引导搜索者查找精选的文档这些文档在搜索的任何 “organic” 匹配项之上被提升。当查询中有排序时pinned 查询失效。
使用限制
不能与自定义排序一起使用置顶文档必须存在于索引中最多支持 100 个置顶文档
排序规则
置顶文档按照 ids 数组中的顺序排序organic 查询结果按照相关性得分排序置顶文档始终在 organic 结果之前
PIT 查询
功能说明
Point in time 查询是一个轻量级的视图根据保留周期保留 PIT 查询发生时数据的状态用于不同条件的深度分页查询。
scroll 滚动搜索及其上下文与查询内容绑定。这意味着编写一个查询添加一个滚动参数来自这个查询的响应数据就会保持一致。不同的查询内容则会产生不同的 scroll 上下文资源使用就会相对紧张。有时想对同一固定数据集适时运行不同的查询就需要 PIT 查询。
如果对于一个不断变化的索引有着很高的搜索负载那么为每个请求创建一个新的时间点查询会使用相当多的资源。可以通过使用一个后台进程每隔几分钟创建一个时间点 id 并将其用于所有搜索请求的方式来优化资源使用
更多内容可以参照这里
注意事项
资源管理
PIT 会占用系统资源需要及时释放建议设置合理的保留时间监控 open context 数量
使用场景
适合需要一致性视图的场景适合需要深度分页的场景适合需要在固定数据集上执行多次查询的场景
性能优化
避免过长的保留时间,合理设置批次大小建议查询的时候带 sort 参数排序
测试代码
// 1. 使用 product_test 索引创建 PIT
POST /product_test/_pit?keep_alive1mGET /_search
{size: 1,query: {match: {model: iphone}},pit: {id: i6-xAwEMcHJvZHVjdF90ZXN0FmRObXltV3ZDU1VTTnllYjNoR0ZtamcAFk1GQklTWXBaUkllb2h1cGl1VVFsdUEAAAAAAAABZk8WOFVoUHBhN3BSVVN5TWVmeTh4d3JpdwEWZE5teW1XdkNTVVNOeWViM2hHRm1qZwAA,keep_alive: 1m},sort: [{_score: desc},{_id: asc}]
} DELETE /_pit
{id:i6-xAwEMcHJvZHVjdF90ZXN0FmRObXltV3ZDU1VTTnllYjNoR0ZtamcAFk1GQklTWXBaUkllb2h1cGl1VVFsdUEAAAAAAAABZk8WOFVoUHBhN3BSVVN5TWVmeTh4d3JpdwEWZE5teW1XdkNTVVNOeWViM2hHRm1qZwAA}小结
作为查询方法Elasticsearch 新增的几个功能面对的场景更加具象且方便大家可以根据业务的场景特性可以优化使用。其中深度分页查询是 ES 使用者几乎避免不了的场景PIT 查询也是提供了一个更为优质的方法。
推荐阅读
谈谈 ES 6.8 到 7.10 的功能变迁1- 性能优化篇谈谈 ES 6.8 到 7.10 的功能变迁2- 字段类型篇谈谈 ES 6.8 到 7.10 的功能变迁4- 聚合功能篇谈谈 ES 6.8 到 7.10 的功能变迁5- 任务和集群管理谈谈 ES 6.8 到 7.10 的功能变迁6- 其他