首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与JCR SQL2查询等价的OCM查询

与JCR SQL2查询等价的OCM查询
EN

Stack Overflow用户
提问于 2013-02-13 22:44:29
回答 1查看 472关注 0票数 0

我正在实施全文搜索杰克兔存储库。在浏览完http://jackrabbit.apache.org/ocm-search.html中给出的示例后,我能够在谓词中只需要'and‘的情况下编写对存储库执行全文搜索。例如:

代码语言:javascript
复制
select * from test where name like '%abc%' and type = 'mainPage' and language = 'english'

可以写成

代码语言:javascript
复制
Filter filter = queryManager.createFilter(Paragraph.class);
filter.addContains('name', 'abc');
filter.addEqualTo('type', 'mainPage');
filter.addEqualTo('language ', 'english');

但是,如果我尝试为以下查询编写OCM实现

代码语言:javascript
复制
select * from test where (name like '%abc%' or name like '%def%' ) and type = 'mainPage' and language = 'english'

正如下面所说的,我的列表是空的。

代码语言:javascript
复制
Filter mainFilter= queryManager.createFilter(Paragraph.class);
Filter filter = queryManager.createFilter(Paragraph.class);
filter.addContains('name', 'abc');
Filter filter1 = queryManager.createFilter(Paragraph.class);
filter.addContains('name', 'def');
mainFilter = filter .addOrFilter(filter1 );
mainFilter .addEqualTo('type', 'mainPage');
mainFilter .addEqualTo('language ', 'english');

我想我不能正确地使用OCM全文搜索。请建议我实现OCM全文搜索的正确方法,在该全文搜索中,谓词包含大量的' and‘和'or’条件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-19 23:23:36

当我使用filter.addLike('name','%def%');

它运行良好。我仍然想知道为什么addContains()不能工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14856095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档