图模式搜索

Bloom 提供了一种简单灵活的方式,通过图模式来探索您的图。它使用从您的图和透视图元素(类别、标签、关系类型、属性键和属性值)构建的词汇表。透视图中未分类的标签和关系或属性未被考虑在词汇表中。要在 Bloom 中构建图模式搜索,您可以使用此词汇表,并逐步构建模式或键入类似自然语言的短语。

Bloom 中有两种不同的搜索体验:默认搜索和经典搜索。要在这两者之间切换,请使用设置抽屉中的切换按钮。

带有主动建议的逐步模式构建

构建图模式的一种方法是使用 Bloom 的主动建议功能。当您需要帮助选择图模式元素(例如,标签的关系类型或连接在一起的类别)时,此功能非常有用。

当您转到搜索栏时,Bloom 会提供主动选项来开始您的搜索。您可以从透视图中可用的任何节点标签中选择,或使用空白(any)节点。此外,如果您知道您感兴趣的关系,但不知道它连接哪些节点标签,您可以根据关系类型进行选择,并对节点标签使用通配符选项((any)节点)。此外,您可以按搜索短语、节点或关系过滤建议。

proactive blank input

如果您选择一个节点标签,例如Product,Bloom 会让您选择是否要通过其关系进一步过滤起始节点,或者是否要按属性和/或属性值进行细化。Bloom 会在搜索栏中直接提示您属性值的类型。

proactive product selected

如果您选择Properties,您可以看到Product标签的所有属性,如果您选择discontinued,例如,您可以指定条件,例如true。这将生成一个以已停产的产品作为起始节点的模式,并过滤所有其他节点,包括其他标签的节点以及discontinued属性不等于trueProduct节点。

从这里,您可以按播放图标显示所有已停产的产品,或者您可以继续定义图模式。

当您对起始节点感到满意时,选择Relationship以查看您指定起始节点的可用关系类型的列表,包括传入和传出关系。同样,您可以根据需要进一步过滤关系的属性。如果您对关系类型不感兴趣,可以使用通配符(any)关系。

最后一步是指定结束节点,这自然遵循与起始节点相同的步骤。这里也可以使用通配符选项(any)

准备好执行搜索时,请按播放图标。

关于属性值建议的说明

Categorylabelrelationship type匹配是在 Bloom 的可用图和透视图元素的内存中元数据中搜索的。对于属性匹配,Bloom 会查询数据库以查找建议。为此,Bloom 依赖于数据库中为应在 Bloom 中可搜索的任何属性设置的属性索引。

对于较大的图,如果特定标签的节点少于 1000 个,则该节点的所有属性都被视为已建立索引。但是,如果某个属性在超过 10% 的节点上具有相同的值,则出于性能原因,无论是否建立索引,它都不可搜索。对于数据值基数较低的小图(例如,在示例数据集中找到的电影图),Bloom 能够搜索属性值而无需索引。

根据搜索输入、索引数量以及在搜索框中输入的速度,Bloom 可能会运行大量索引查找查询以查找相关匹配。内置了优化功能,可在等待用户完成输入时延迟触发查询,并在输入更改时取消不必要的查询。

Bloom 还尝试从建议列表中隐藏模式排列,如果它们在数据库中找不到。这可能并不适用于所有情况。用户机器与 Neo4j 服务器之间的数据库性能问题或网络延迟可能会导致显示搜索建议延迟。

输入的大小写敏感性

Neo4j 数据库是区分大小写的。默认情况下,如果属性值用户输入的任何匹配令牌开头,Bloom 将以区分大小写的方式匹配属性值。如果您希望搜索建议不区分大小写,可以在 Bloom 设置中启用“不区分大小写搜索和建议”。

相反,标签、类别、关系类型或属性键等元数据元素将以不区分大小写的方式匹配。此外,如果元数据元素仅包含其中一个搜索令牌,则会匹配。

不区分大小写匹配属性值需要对所有将要搜索的属性进行全文索引。如果没有全文索引,即使启用了“不区分大小写搜索和建议”,Bloom 也会使用区分大小写搜索。

经典搜索比默认选项稍微不那么细致入微。它提供主动建议,让您可以逐步构建图模式,以及使用类似自然语言进行全文搜索。它的功能差异不大,但不太直观和主动。如前所述,如果您想使用经典搜索,请使用设置抽屉中的切换按钮。