Lucene 露西妮兔
最近,我们已经将Lucene2.4.1支持添加到与Jackrabbit1.6.2一起工作的应用程序中。我们所做的一切都像jackrabbit教程中描述的那样。一切都很好。但我注意到一些奇怪的行为,找不到任何关于它的文档。我决定问你这件事 例如:我在jcr:data属性的Nodejcr:content中有以下文本Lucene 露西妮兔,lucene,xpath,jackrabbit,Lucene,Xpath,Jackrabbit,最近,我们已经将Lucene2.4.1支持添加到与Jackrabbit1.6.2一起工作的应用程序中。我们所做的一切都像jackrabbit教程中描述的那样。一切都很好。但我注意到一些奇怪的行为,找不到任何关于它的文档。我决定问你这件事 例如:我在jcr:data属性的Nodejcr:content中有以下文本 The quick brown fox jumps over the lazy dog !@#$%^& travmik! tra!vmik 我的XPath查询如下所示:
The quick brown fox jumps over the lazy dog
!@#$%^&
travmik!
tra!vmik
我的XPath查询如下所示:
String query = "root/element(*,my:documentBody)
[jcr:contains(*/*/element(*),'*" + param +"*')]";
然后我尝试搜索:
q、 qu,qui,quic,quic,quic,k,ck,ick,uick,quic,quic,quic,quic,quic,quic,quic,quic,quic,quic,quic,quic,quic,k,ck,ck,quic,quic,quic,quic,quic,quic,quic
茶!vmik,travmik!,!@$-没什么
是的,我避开了所有的特殊角色
我做错了什么
另外,我还有一个问题——在Lucene文档中,你不能使用*或?符号作为搜索的第一个字符,但我使用它,并且它可以工作。为什么?我发现了这个问题。这是对jackrabbit中用于索引内容的提取器的一些误解。我不想详细说明,但可以说,这段来自某个提取器的代码是我所有问题的原因:
if (!Character.isLetterOrDigit(c)) {
if (!space) {
space = true;
buffer.append(' ');
continue;
}
continue;
}
如果有人对此感兴趣,我可以更详细地解释。我也在尝试实现lucene全文搜索,但不知何故它不起作用,你能帮我解决这个问题吗