首页 > 解决方案 > Xodus 中的子字符串或正则表达式搜索

问题描述

我注意到 Xodus 实体浏览器允许搜索以子字符串开头的属性值。例如:

firstName ~ Jo

我想知道是否考虑了子字符串或正则表达式搜索。我认为它不存在,因为它需要遍历每个实体。但即使速度很慢,它也是实体浏览器中的一个方便功能,可能带有进度条。有人知道这是否被考虑过,或者是否会接受添加它的 PR?

标签: xodus

解决方案


正则表达式搜索不可用,但子字符串搜索可用。有StoreTransaction.findStartingWith(..)方法。子字符串搜索是一种对字符串属性值的属性范围搜索。它在搜索属性值范围wiki 部分中有所提及。

这是一个描述使用的测试findStartingWith(..)

至于性能,子字符串搜索不会遍历实体。它使用与按属性值搜索和属性范围搜索相同的属性索引。


推荐阅读