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

中国企业网官方网站查询php网站建设的基本流程图

中国企业网官方网站查询,php网站建设的基本流程图,网站开发用什么软件编程,凌风wordpress 百度云现在#xff0c;我们已经学会了如何使用 Elasticsearch 作为一个简单的 NoSQL 风格的分布式文档存储系统。我们可以将一个 JSON 文档扔到 Elasticsearch 里#xff0c;然后根据 ID 检索。但 Elasticsearch 真正强大之处在于可以从无规律的数据中找出有意义的信息——从“大数…现在我们已经学会了如何使用 Elasticsearch 作为一个简单的 NoSQL 风格的分布式文档存储系统。我们可以将一个 JSON 文档扔到 Elasticsearch 里然后根据 ID 检索。但 Elasticsearch 真正强大之处在于可以从无规律的数据中找出有意义的信息——从“大数据”到“大信息”。 Elasticsearch 不只会_存储stores_ 文档为了能被搜索到也会为文档添加_索引indexes_ 这也是为什么我们使用结构化的 JSON 文档而不是无结构的二进制数据。 文档中的每个字段都将被索引并且可以被查询 。不仅如此在简单查询时Elasticsearch 可以使用 所有all 这些索引字段以惊人的速度返回结果。这是你永远不会考虑用传统数据库去做的一些事情。 搜索search 可以做到 在类似于 gender 或者 age 这样的字段上使用结构化查询join_date 这样的字段上使用排序就像SQL的结构化查询一样。全文检索找出所有匹配关键字的文档并按照_相关性relevance_ 排序后返回结果。以上二者兼而有之。 很多搜索都是开箱即用的为了充分挖掘 Elasticsearch 的潜力你需要理解以下三个概念 映射Mapping 描述数据在每个字段内如何存储 分析Analysis全文是如何处理使之可以被搜索的 领域特定查询语言Query DSLElasticsearch 中强大灵活的查询语言 以上提到的每个点都是一个大话题我们将在 深入搜索 一章详细阐述它们。本章节我们将介绍这三点的一些基本概念——仅仅帮助你大致了解搜索是如何工作的。 我们将使用最简单的形式开始介绍 search API。 空搜索 搜索API的最基础的形式是没有指定任何查询的空搜索它简单地返回集群中所有索引下的所有文档 GET /_search{took: 4,timed_out: false,_shards: {total: 1,successful: 1,skipped: 0,failed: 0},hits: {total: {value: 13,relation: eq},max_score: 1,hits: [{_index: website,_id: 3,_score: 1,_source: {views: 1}},......]} }hits 返回结果中最重要的部分是 hits 它包含 total 字段来表示匹配到的文档总数并且一个 hits 数组包含所查询结果的前十个文档。 在 hits 数组中每个结果包含文档的 _index 、 _id 加上 _source 字段。这意味着我们可以直接从返回的搜索结果中使用整个文档。这不像其他的搜索引擎仅仅返回文档的ID需要你单独去获取文档。 每个结果还有一个 _score 它衡量了文档与查询的匹配程度。默认情况下首先返回最相关的文档结果就是说返回的文档是按照 _score 降序排列的。在这个例子中我们没有指定任何查询故所有的文档具有相同的相关性因此对所有的结果而言 1 是中性的 _score 。 max_score 值是与查询所匹配文档的 _score 的最大值。 took took 值告诉我们执行整个搜索请求耗费了多少毫秒。 shards _shards 部分告诉我们在查询中参与分片的总数以及这些分片成功了多少个失败了多少个。正常情况下我们不希望分片失败但是分片失败是可能发生的。如果我们遭遇到一种灾难级别的故障在这个故障中丢失了相同分片的原始数据和副本那么对这个分片将没有可用副本来对搜索请求作出响应。假若这样Elasticsearch 将报告这个分片是失败的但是会继续返回剩余分片的结果。 timeout timed_out 值告诉我们查询是否超时。默认情况下搜索请求不会超时。如果低响应时间比完成结果更重要你可以指定 timeout 为 10 或者 10ms10毫秒或者 1s1秒 GET /_search?timeout10ms在请求超时之前Elasticsearch 将会返回已经成功从每个分片获取的结果。 应当注意的是 timeout 不是停止执行查询它仅仅是告知正在协调的节点返回到目前为止收集的结果并且关闭连接。在后台其他的分片可能仍在执行查询即使是结果已经被发送了。 使用超时是因为 SLA(服务等级协议)对你是很重要的而不是因为想去中止长时间运行的查询。 多索引多类型 你有没有注意到之前的 empty search 的结果不同类型的文档— user 和 tweet 来自不同的索引— us 和 gb 如果不对某一特殊的索引或者类型做限制就会搜索集群中的所有文档。Elasticsearch 转发搜索请求到每一个主分片或者副本分片汇集查询出的前10个结果并且返回给我们。 然而经常的情况下你想在一个或多个特殊的索引并且在一个或者多个特殊的类型中进行搜索。我们可以通过在URL中指定特殊的索引和类型达到这种效果如下所示 /_search——在所有的索引中搜索所有的类型 /gb/_search——在 gb 索引中搜索所有的类型 /gb,us/_search——在 gb 和 us 索引中搜索所有的文档 /g*,u*/_search——在任何以 g 或者 u 开头的索引中搜索所有的类型 当在单一的索引下进行搜索的时候Elasticsearch 转发请求到索引的每个分片中可以是主分片也可以是副本分片然后从每个分片中收集结果。多索引搜索恰好也是用相同的方式工作的—​只是会涉及到更多的分片。 搜索一个索引有五个主分片和搜索五个索引各有一个分片准确来所说是等价的。 分页 在之前的 空搜索 中说明了集群中有 14 个文档匹配了emptyquery 。 但是在 hits 数组中只有 10 个文档。如何才能看到其他的文档 和 SQL 使用 LIMIT 关键字返回单个 page 结果的方法相同Elasticsearch 接受 from 和 size 参数 size 显示应该返回的结果数量默认是 10 from 显示应该跳过的初始结果数量默认是 0 如果每页展示 5 条结果可以用下面方式请求得到 1 到 3 页的结果 GET /_search?size5 GET /_search?size5from5 GET /_search?size5from10考虑到分页过深以及一次请求太多结果的情况结果集在返回之前先进行排序。 但请记住一个请求经常跨越多个分片每个分片都产生自己的排序结果这些结果需要进行集中排序以保证整体顺序是正确的。 在分布式系统中深度分页 理解为什么深度分页是有问题的我们可以假设在一个有 5 个主分片的索引中搜索。 当我们请求结果的第一页结果从 1 到 10 每一个分片产生前 10 的结果并且返回给 协调节点 协调节点对 50 个结果排序得到全部结果的前 10 个。 现在假设我们请求第 1000 页—​结果从 10001 到 10010 。所有都以相同的方式工作除了每个分片不得不产生前10010个结果以外。 然后协调节点对全部 50050 个结果排序最后丢弃掉这些结果中的 50040 个结果。 可以看到在分布式系统中对结果排序的成本随分页的深度成指数上升。这就是 web 搜索引擎对任何查询都不要返回超过 1000 个结果的原因。 轻量 搜索 有两种形式的 搜索 API一种是 “轻量的” 查询字符串 版本要求在查询字符串中传递所有的参数另一种是更完整的 请求体 版本要求使用 JSON 格式和更丰富的查询表达式作为搜索语言。 查询字符串搜索非常适用于通过命令行做即席查询。例如查询在 tweet 类型中 tweet 字段包含 elasticsearch 单词的所有文档 GET /_search?qtweet:elasticsearch下一个查询在 name 字段中包含 john 并且在 tweet 字段中包含 mary 的文档。实际的查询就是这样 name:john tweet:mary但是查询字符串参数所需要的 百分比编码 译者注URL编码实际上更加难懂 GET /_search?q%2Bname%3Ajohn%2Btweet%3Amary前缀表示必须与查询条件匹配。类似地 - 前缀表示一定不与查询条件匹配。没有 或者 - 的所有其他条件都是可选的——匹配的越多文档就越相关。 _all 字段 这个简单搜索返回包含 mary 的所有文档 GET /_search?qmary之前的例子中我们在 tweet 和 name 字段中搜索内容。然而这个查询的结果在三个地方提到了 mary 有一个用户叫做 Mary6条微博发自 Mary一条微博直接 mary Elasticsearch 是如何在三个不同的字段中查找到结果的呢 当索引一个文档的时候Elasticsearch 取出所有字段的值拼接成一个大的字符串作为 _all 字段进行索引。例如当索引这个文档时 {tweet: However did I manage before Elasticsearch?,date: 2014-09-14,name: Mary Jones,user_id: 1 }这就好似增加了一个名叫 _all 的额外字段 However did I manage before Elasticsearch? 2014-09-14 Mary Jones 1除非设置特定字段否则查询字符串就使用 _all 字段进行搜索。 在刚开始开发一个应用时_all 字段是一个很实用的特性。之后你会发现如果搜索时用指定字段来代替 _all 字段将会更好控制搜索结果。当 _all 字段不再有用的时候可以将它置为失效正如在 元数据: _all 字段 中所解释的。 更复杂的查询 下面的查询针对tweents类型并使用以下的条件 name 字段中包含 mary 或者 johndate 值大于 2014-09-10_all 字段包含 aggregations 或者 geo name:(mary john) date:2014-09-10 (aggregations geo)查询字符串在做了适当的编码后可读性很差 ?q%2Bname%3A(maryjohn)%2Bdate%3A%3E2014-09-10%2B(aggregationsgeo)从之前的例子中可以看出这种 轻量 的查询字符串搜索效果还是挺让人惊喜的。 它的查询语法在相关参考文档中有详细解释以便简洁的表达很复杂的查询。对于通过命令做一次性查询或者是在开发阶段都非常方便。 但同时也可以看到这种精简让调试更加晦涩和困难。而且很脆弱一些查询字符串中很小的语法错误像 - : / 或者 不匹配等将会返回错误而不是搜索结果。 最后查询字符串搜索允许任何用户在索引的任意字段上执行可能较慢且重量级的查询这可能会暴露隐私信息甚至将集群拖垮。 因为这些原因不推荐直接向用户暴露查询字符串搜索功能除非对于集群和数据来说非常信任他们。 相反我们经常在生产环境中更多地使用功能全面的 request body 查询API除了能完成以上所有功能还有一些附加功能。但在到达那个阶段之前首先需要了解数据在 Elasticsearch 中是如何被索引的。
http://www.pierceye.com/news/781527/

相关文章:

  • 网站备案后可以更换域名吗2345网页游戏
  • 登录浏览器是建设银行移动门户网站广州专业做外贸网站
  • 思明区建设局网站微信 网页版
  • 淘宝客怎么做自己的网站搜索引擎营销案例分析题
  • 给女朋友做网站的素材友情链接是什么意思
  • 成都微信网站建设多少钱南平抖音搜索排名seo软件
  • 做外贸用哪些网站成都房地产开发商排名
  • 网站建设实施计划包括网页关键词优化
  • 建企业网站怎么做单页面网站源码
  • 儿童网站模板微信网站下载
  • 建设网站的市场背景搭建本地网站做色流
  • 湖南岳阳网站建设公司黄页顺企网宾馆在什么网站做推广效果好
  • 做外贸网站 怎么收钱网站自适应手机怎么
  • wordpress分只显示标题网站内容优化关键词布局
  • 校园云网站建设怎么做网站自动响应
  • 怎么做扫码进入网站北京seo计费
  • 网站备案 2016如何找网站
  • 网站开发客户挖掘做网站没签合同
  • 适合大学生做的兼职网站中国企业网信息查询系统
  • 淘宝网站的建设与运营设计思路做网站商铺模板
  • 网站优秀设计方案中国网站制作企业排行榜
  • 南昌建设局网站查询塔吊证怎么查福州seo网站建设
  • 机关内网站建设方案书给人做传销网站
  • 厦门有什么网站制作公司邢台太行中学简介
  • 天合建设集团网站做一个网站得做多少个页面
  • 做衣服接订单的网站网站用哪些系统做的
  • 爱美刻在线制作网站罗村网站制作公司
  • 现在网站用什么软件做免费的会计做账系统
  • 国外的包装设计网站三明网站设计
  • 网站源码怎样弄成网站工商登记网站