个人理财 NoSQL搜索要考虑的功能 - 傻瓜

NoSQL搜索要考虑的功能 - 傻瓜

视频: 透過區塊鍊自動化保險契約 by Rhys Chang - JCConf 2016 R1 Day2-5 2025

视频: 透過區塊鍊自動化保險契約 by Rhys Chang - JCConf 2016 R1 Day2-5 2025
Anonim

许多NoSQL数据库都支持查询功能和某些搜索功能。选择合适的人往往归结为理解您需要支持的功能。

虽然它们是相关的,但是查询和搜索是完全不同的。查询只返回匹配其中所有条款的结果。另一方面,搜索可以包括可选的术语,并且通常提供通过相关性计算排序的结果。

<! --1 - >

相关性计算可以实现更灵活的搜索交互。进行搜索的用户最后调用哪个结果与他们匹配 - 搜索引擎只是提供有序的提示。

搜索和查询都可以启用精确值匹配和范围查询 - 例如,记录中的日期字段值位于两个值之间。范围查询不被许多NoSQL数据库或搜索引擎支持,所以如果你需要它们,一定要在你的选择过程中尽早检查。

<! - 2 - >

大多数搜索引擎设计用来搜索整个记录,并将其查询条件限制在特定的字段(例如“发布日期”)。通常情况下,可以使用多种自由文本查询方法,包括:

  • Word查询,每个单词在一起进行OR运算: 因此,“adam fowler blog”被评估为adam OR fowler OR博客,所有的单词,导致更高的相关性分数比只使用一个单词。

  • 短语查询,其中整个短语被视为一个: 因此,评估“对老鼠和男人”的结果,使得结果必须以相同的顺序具有所有的单词一场比赛。

  • 通配符: 搜索“run *”返回“run”,“runs”,“running”和“runner”的结果。 “

  • Stemming: 搜索”run“也返回”ran“和”runs“的结果,但不是”running“或”runner“。搜索“猫”也返回“猫”的结果。 “

  • 词形: 这是比词干更高级的方法。例如,术语“更好”的词式化导致它的 词条 (词的基本或字典形式),在这种情况下是“好的”。 “

大多数人喜欢在Google风格的搜索框中输入搜索字词,因为它非常人性化。

搜索引擎支持名为 搜索语法的文本格式。 例如,在Google中,输入“site:uk AND Adam Fowler AND London”与来自英国网站的所有提及伦敦字词和Adam Fowler字样的文档相匹配。

也可以使用括号将术语嵌套在术语中,这对布尔运算符(如AND,OR和NOT)特别有用。

有时,需要一个更结构化的查询机制。通常,这是一种JSON或XML格式的定制且非常精细的格式。在地理空间查询中可以找到一个很好的例子。指定要搜索的区域的边界框通常最好在地图上完成,方法是绘制一个框,而不是在自由文本搜索栏中输入坐标。

越来越多的人使用地理空间查询来限制他们的搜索,包括:

  • Point: 匹配一个确切点。

  • 点半径: 匹配点(圆形区域)内的距离。

  • 边界框: 匹配一个正方形区域(如在地图的显示区域中)。

  • 多边形: 匹配手绘或不规则形状。一个好的例子是一个县或州的形状。这些基本上是一个区域内的大型坐标阵列。

  • 多边形 - 多边形相交: 使用查询多边形匹配记录中的多边形(与前面的查询类型中记录中的点相对)。查询多边形是否碰到记录中的一个,或者完全包含它,还是完全错过?这种类型的查询需要大量的处理,并且没有得到广泛的支持,但是在国防工业中却是需要的。重要的是要注意地理空间查询在很大程度上依赖于复杂的数学关于特定的坐标参考系统(称为CRS)如何代表世界。例如,GPS设备使用称为WGS84(也称为EPSG:4326)的系统,而在线地图使用EPSG:900916 CRS系统。了解数据库如何存储其地理空间数据,必要的转换是非常重要的;否则,你可能根本无法获得一场比赛,或者距离你想要的结果有几百码。某些搜索引擎也支持帮助用户输入查询的方法。这在Google的自动完成功能中最为明显。您开始输入查询,而Google建议您选择最有可能的查询。许多搜索引擎支持类似的功能。

更多的搜索功能可用,因此请务必在选择搜索引擎之前进行调查。

NoSQL搜索要考虑的功能 - 傻瓜

编辑的选择

记录您的思科网络配置与CDP - 傻瓜

记录您的思科网络配置与CDP - 傻瓜

记录思科网络配置有时没有思科发现协议)可能需要花费数小时在布线室跟踪电缆和记录端口。在某些情况下,配线室是一个真正的老鼠的电缆巢,并且可能需要几个小时的导航才能找出哪些交换机连接到哪个交换机,哪些路由器,...

以太网通道诊断信息收集 - 虚拟

以太网通道诊断信息收集 - 虚拟

诊断思科网络中的以太网通道问题,您首先必须能够收集您的交换机及其配置。为了执行这个任务,你一如既往地依靠Show和debug命令。首先,简要介绍一下show命令的内容。 Switch1> enable Switch1#configure terminal Switch2#show EtherChannel ...

扩展访问控制列表(ACL) - 虚拟

扩展访问控制列表(ACL) - 虚拟

扩展访问控制列表(ACL)允许您允许拒绝来自特定IP地址的流量到特定的目标IP地址和端口。它还允许您指定不同类型的流量,如ICMP,TCP,UDP等。不用说,它非常细化,可以使您非常具体。如果...

编辑的选择

电子项目计划步骤1:设想您的电子项目 - 傻瓜

电子项目计划步骤1:设想您的电子项目 - 傻瓜

设计和建立你的电子项目的细节,你应该退后一步,看看大局。首先,你需要确保你有一个坚实的想法为您的项目。你为什么要建立它?它会做什么,谁来使用它,为什么? ...

电子项目计划步骤4:构建您的电路 - 傻瓜

电子项目计划步骤4:构建您的电路 - 傻瓜

而且你对它的操作感到满意,你可以建立一个永久版本的电路。虽然有几种方法可以做到这一点,但最常见的是在印刷电路板(也称为PCB)上构建电路。请注意,在PCB上组装电路...

电子项目计划步骤3:原型电路 - 假人

电子项目计划步骤3:原型电路 - 假人

永久的电路板,你会想确保它的工作。最简单的方法就是在无焊面包板上构建电路。无焊料面包板可以让您快速组装电路元件而不需要焊接任何东西。相反,您只需将其裸露在外...

编辑的选择

如何替换R中的文本 - 虚拟变量

如何替换R中的文本 - 虚拟变量

R中的sub()函数在文本模式,并用替换文本替换此模式。你使用sub()来替代文本文本,并使用其表兄gsub()来替换所有出现的模式。 (gsub()中的g表示全局。)假设你有句子He ...

中如何成功地遵循命名惯例在R - 傻瓜

中如何成功地遵循命名惯例在R - 傻瓜

R是非常自由的,对象和功能。这个自由是一个很大的祝福,同时也是一个很大的负担。没有人不得不遵循严格的规则,所以在R中编程的人基本上可以按照自己的意愿去做。如何选择一个正确的名字...

中使用函数在R中创建并转换脚本后,如何使用R - dummies中的函数

中使用函数在R中创建并转换脚本后,如何使用R - dummies中的函数

再次使用前面显示的Source()命令将其加载到控制台中。现在你看...什么也没有。 R并不让你知道它已经加载了这个函数,但它已经在工作空间中了,你可以检查一下...