objectbox - 在 ObjectBox 中,在 String 属性下搜索完整单词的简单方法是什么?
问题描述
我有一个名为“句子”的属性,它是一个字符串。假设我想找到所有包含“in”作为单词的句子(不是任何字符串片段)。有什么简单的方法?“包含”似乎不接受像“\bin\b”这样的正则表达式?
解决方案
我建议使用两级方法:
- 使用“包含”查询条件来减少没有正则表达式的候选人数量
- 使用正则表达式应用查询过滤器以获取实际结果
在代码中它应该看起来像这样:
Pattern pattern = Pattern.compile(myRegexPattern);
// Reduce object count to reasonable value.
box.query().contains(MyType_.myText, "in")
// Filter is performed on candidate objects.
.filter((obj) -> pattern.matcher(obj.myText).matches());
步骤 1 主要是将结果集从所有对象减少到候选对象。这在数据库端更有效地完成。
推荐阅读
- php - Laravel 检查 foreach 中的集合中是否存在属性
- reactjs - 在 next.js 中,错误:对象作为 React 子项无效(找到:带有键 {} 的对象)
- kubernetes - 创建角色以查看集群事件
- c++ - 如何在函数中使用主变量?
- java - java DateTimeFormatter 错误?
- r - blogdown 中的 New_post 不会生成 Rmarkdown 文件
- salesforce - 尝试使用 eclipse 调试需求软件管道代码时出错
- reactjs - 反应传单显示为覆盖
- javascript - 按共同日期汇总对象数组中的数据
- python - 'float' 对象在我的游戏中不可调用