图模式搜索
Bloom 提供了一种简便且灵活的方式,通过图模式来探索您的图。它使用从您的图和 Perspective 元素(类别、标签、关系类型、属性键和属性值)构建的词汇表。未分类的标签、关系或在 Perspective 中隐藏的属性不会被计入词汇表。要在 Bloom 中构建图模式搜索,您可以使用该词汇表,逐步构建模式或输入接近自然语言的短语。
逐步模式构建与主动建议
构建图模式的一种方法是使用 Bloom 的主动建议功能。当您需要帮助挑选图模式的元素(例如来自某标签的关系类型或相互连接的类别)时,这非常有用。
当您打开搜索栏时,Bloom 会提供主动选项帮助您开始搜索。您可以从 Perspective 中可用的任意节点标签中进行选择,或使用空白 (any) 节点。此外,如果您知道感兴趣的关系类型,却不清楚它连接的节点标签,可以根据关系类型进行选择,并对节点标签使用通配符选项((any) 节点)。此外,您还可以通过搜索短语、节点或关系来过滤建议。
如果您选择一个节点标签,例如 Product,Bloom 会让您决定是希望进一步根据其关系来过滤起始节点,还是希望通过属性和/或属性值进行细化。Bloom 会在搜索栏中直接提示属性值的数据类型。
如果您选择 Properties,可以看到 Product 标签的所有属性,例如选择 discontinued,随后您可以指定条件,例如 true。这将生成一个以已停产的产品为起点的模式,并过滤所有其他节点,包括其他标签的节点以及 Product 节点中 discontinued 属性不等于 true 的节点。
此时,您可以点击播放图标显示所有已停产的产品,或继续定义图模式。
当您对起始节点满意后,选择 Relationship 以查看针对指定起始节点的可用关系类型列表,包括入向和出向。同样,若关系具有属性,您可以进一步对属性进行过滤。如果您对关系类型不在意,可以使用通配符 (any) 关系。
最后一步是指定结束节点,这自然与起始节点的步骤相同。此处同样可以使用通配符 (any)。
准备执行搜索时,点击播放图标。
关于属性值建议的说明
Category、label 和 relationship type 的匹配在 Bloom 的内存中元数据(可用的图和 Perspective 元素)中进行搜索。对于属性匹配,Bloom 会查询数据库以获取建议。为此,Bloom 依赖于在数据库中为所有需要在 Bloom 中可搜索的属性建立属性索引。
对于较大的图,如果具有特定标签的节点数量少于 1000,则该标签下所有属性都被视为已建立索引。然而,如果某属性在超过 10% 的节点上具有相同的取值,则出于性能考虑,该属性不可搜索,无论是否已建立索引。对于数据值基数低的小型图(例如示例数据集中的 Movies 图),Bloom 能够在不需要索引的情况下搜索属性值。
根据搜索输入、索引数量以及在搜索框中的输入速度,Bloom 可能会执行大量索引查找查询以找到相关匹配。系统内置了优化机制,在等待用户完成输入时延迟发起查询,并在输入改变时取消不再需要的查询。
Bloom 还会尝试在建议列表中隐藏不存在于数据库中的模式排列组合。但这并非在所有情况下都适用。数据库性能问题或用户机器与 Neo4j 服务器之间的网络延迟可能导致显示搜索建议时出现延迟。
输入的大小写敏感性
Neo4j 数据库是 大小写敏感 的。默认情况下,Bloom 对属性值进行 大小写敏感 的匹配,前提是属性值 以 用户输入的匹配标记开头。如果您希望搜索建议 不区分大小写,可以在 Bloom 设置中启用 Case insensitive search and suggestions。
相比之下,标签、类别、关系类型或属性键等元数据元素的匹配是 不区分大小写 的。此外,只要元数据元素包含任意搜索标记,即视为匹配。
|
对属性值进行不区分大小写的匹配需要在所有待搜索的属性上创建全文索引。如果没有全文索引,即使启用了 |