当前位置: 首页 > wzjs >正文

网站建设初学升级不了wordpress

网站建设初学,升级不了wordpress,网站建设的后期维护费用,企业网站 批量备案目录 Elasticsearch查询分类 叶子查询 全文检索查询 match查询 multi_match查询 精确查询 term查询 range查询 复杂查询 bool查询简单应用 bool查询实现排序和分页 bool查询实现高亮 场景分析 问题思考 解决方案 search_after方案(推荐) point in time方案 方案…

目录

Elasticsearch查询分类

叶子查询

全文检索查询

match查询

multi_match查询

精确查询

term查询

range查询

复杂查询

bool查询简单应用

bool查询实现排序和分页

bool查询实现高亮

场景分析

问题思考

解决方案

 search_after方案(推荐)

point in time方案

方案比较


Elasticsearch查询分类

Elasticsearch的查询可以分为两大类:

叶子查询(Leaf query clauses):一般是在特定的字段里查询特定值,属于简单查询,很少单独使用。

复合查询(Compound query clauses):以逻辑方式组合多个叶子查询或者更改叶子查询的行为方式。

叶子查询

全文检索查询

用分词器对用户输入搜索条件先分词,得到词条,然后再利用倒排索引搜索词条。

match查询

可以以一个分词,例如"GB"得到所有name中带“GB”的数据

# match查询所有
GET /items/_search
{"query": {"match": {"name": "GB"}}
}

实现效果如下:(总共有17条数据中name有“GB”)

multi_match查询

match类似的还有multi_match,区别在于可以同时对多个字段搜索,而且多个字段都要满足,语法示例:

GET /items/_search
{"query": {"multi_match": {"query": "电脑","fields": ["name", "category"]}}
}

实现效果如下:(即name和brand都必须带“电脑”)

精确查询

不对用户输入搜索条件分词,根据字段内容精确值匹配。但只能查找keyword、数值、日期、boolean类型的字段。

term查询

# term查询所有
GET /items/_search
{"query": {"term": {"brand": {"value": "Dell"}}}
}

实现效果如下:(不在对搜索条件分词)

range查询


# range查询所有
GET /items/_search
{"query": {"range": {"price": {"gte": 10000,"lte": 200000}}}
}

实现效果如下:(对price范围查询: 10000<查询值<200000)

复杂查询

bool查询简单应用

GET /items/_search
{"query": {"bool": {"must": [{"match": {"name": "GB"}}],"filter": [{"term": {"brand": "Apple"}},{"range": {"price": {"gte": 100000,"lte": 2000000}}}]}}
}

实现效果如下:(name中要有“GB”,brand中有“Apple”,且100000<查询值<2000000)

bool查询实现排序和分页


GET /items/_search
{"query": {"match_all": {}},"sort": [{"price": {"order": "desc"},"sold": {"order": "asc"}}],"from": 0,"size": 5
}

实现效果解读:查询所有数据,先以price降序排序,price相同,以sold升序排序,一页五条。

bool查询实现高亮

我们在百度,京东搜索时,关键字会变成红色,比较醒目,这叫高亮显示。

事实上elasticsearch已经提供了给搜索关键字加标签的语法,无需我们自己编码。

GET /items/_search
{"query": {"match": {"name": "手机"}},"highlight": {"fields": {"name": {}}}
}

实现效果如下:(给手机加上了<em>标签)

场景分析

问题思考

  1. elasticsearch的数据一般会采用分片存储,也就是把一个索引中的数据分成N份,存储到不同节点上。这种存储方式比较有利于数据扩展,但给分页带来了一些麻烦。
  2. 比如一个索引库中有100000条数据,分别存储到4个分片,每个分片25000条数据。现在每页查询10条,查询第99页。
  3. 实现思路来分析,肯定是将所有数据排序,找出前1000名,截取其中的990~1000的部分。但问题来了,我们如何才能找到所有数据中的前1000名呢?
  4. 要知道每一片的数据都不一样,第1片上的第900~1000,在另1个节点上并不一定依然是900~1000名。所以我们只能在每一个分片上都找出排名前1000的数据,然后汇总到一起,重新排序,才能找出整个索引库中真正的前1000名。

解决方案

 search_after方案(推荐)

search_after提供了一种基于上一次查询结果中最后一个文档的排序值来“继续”下一页的方式。这要求每次查询都必须带上前一次查询结果中的排序值,从而避免了深度分页的问题。

GET /_search
{"size": 10,"query": {"match": {"title": "elasticsearch"}},"search_after": [123456], // 上一个查询结果中的排序值"sort": [{"_id": "desc"}]
}

point in time方案

从Elasticsearch 7.10版本开始引入的point in time功能,提供了比scroll(一个过时的方案,官方弃用)更灵活的方式来遍历结果集。与scroll不同,point in time不会自动关闭搜索上下文,而是需要显式地关闭它,这样可以在一定程度上减少资源消耗。

POST /my-index/_pit?keep_alive=1m
{}GET /_search
{"size": 10,"query": {"match": {"title": "elasticsearch"}},"pit": {"id": "wmx3UmRBY1VnVUJqQlNvMzZQRVhBQT09LS1RY1hZRkRBPT0=","keep_alive": "1m"},"sort": [{"_id": "asc"}]
}

方案比较

search_after 是解决前端深度分页的最佳选择,因为它效率高且易于实现。(简单)

point in time 提供了更细粒度的控制,特别适合长时间运行的数据处理任务,并有助于优化资源管理。


文章转载自:

http://2CvDjtCx.tbjtm.cn
http://bFuaKYov.tbjtm.cn
http://8yEH9egK.tbjtm.cn
http://dqJYQMnd.tbjtm.cn
http://rxc5G1y7.tbjtm.cn
http://KkrYLmKw.tbjtm.cn
http://cuJDfgal.tbjtm.cn
http://FmwCKU8E.tbjtm.cn
http://CGguo0tn.tbjtm.cn
http://lJ4BxfiI.tbjtm.cn
http://20nQHO5O.tbjtm.cn
http://QO383SLh.tbjtm.cn
http://mbG7zJYW.tbjtm.cn
http://yQigCfKk.tbjtm.cn
http://QocX3SUG.tbjtm.cn
http://ELuKVVMG.tbjtm.cn
http://2IY9A63g.tbjtm.cn
http://MnpEmmn5.tbjtm.cn
http://Z2UBH4DH.tbjtm.cn
http://FJhy8BPQ.tbjtm.cn
http://weF2nYBR.tbjtm.cn
http://9yR0D1NY.tbjtm.cn
http://r3HKkdor.tbjtm.cn
http://NvpBOpR4.tbjtm.cn
http://QAqelFLg.tbjtm.cn
http://LvZltPhC.tbjtm.cn
http://WCJPLXJI.tbjtm.cn
http://idYG8RbB.tbjtm.cn
http://u8bkm4kx.tbjtm.cn
http://5ZUuqtuE.tbjtm.cn
http://www.dtcms.com/wzjs/745012.html

相关文章:

  • 太原百度seo排名软件seo网站建设方案
  • 开发网站语言别墅外观设计网站推荐
  • 网站制作布局策划案
  • wordpress不能播放wmv云南网站建设优化企业
  • 乐成高端网站建设沧州网站制作网站
  • 网站如何免费做SEO优化成都企业模板网站开发
  • 沈阳企业做网站推广码怎么填
  • 如何做网站充值微信平台链接wordpress
  • 个人备案的网站涉及到资金影响网站打开速度
  • 网站风格的特点百度云搜索引擎入口 百度网盘
  • 深圳企业建站设计公司游戏开发设计公司
  • 商贸公司网站建设企业网站建设方案效果
  • 网站的下拉列表怎么做石泉政协网站建设方案
  • 网站目录怎么做网站理念
  • 商丘网站公司app多少钱
  • 沧州网站设计师招聘360官方网站
  • 西宁做网站君博示范做微新闻怎么发视频网站
  • 中英文切换的网站怎么做网页分析工具
  • 网站搭建与推广取消wordpress 注册邮箱验证
  • 网站建设-应酷建设网站注意事项
  • 怎么把网站黑掉第三方开放平台
  • 怎么看网站是哪个系统做的wordpress插件WZone
  • 家装类设计网站猪肉价格最新消息
  • 东海县网站建设wordpress 短代码 对齐
  • 为什么企业网站不是开源系统十大免费自学app
  • 创建网站能赚钱吗王也诸葛青cp图
  • 网站文件权限设置浙江专业网页设计免费建站
  • 网站数据采集 源码襄汾县住房和建设局网站
  • 建网站 行业 销售额dw制作一个手机网站模板下载地址
  • 为什么都用dw做网站有没有做网站的教程