繁体   English   中英

用lucene处理特殊字符

[英]Handling special characters with lucene

我没有找到问题的答案,所以我决定写我的问题来寻求帮助。

我使用lucene索引计算机内存中的对象(它们仅存在于我的Java代码中)。 在处理代码时,我使用WhitespaceAnalyzer索引了值为objA/4的字段。

当我想在索引建立后也找到它时(也使用WhitespaceAnalyzer ),我的问题就开始了。

创建查询obj* ,我会找到以obj开头的所有对象-如果创建查询objA/4我也可以找到该对象。

但是我不知道如何找到以objA/开头的所有对象,当我创建查询objA/* lucene将其更改为obja/*什么也没找到。

我已经检查过,“ /”不是一个特殊字符,因此在它之前不需要任何“ \\”。

所以我的问题是如何要求获取以objA/开头的所有对象(例如objA/0objA/1objA/2objA/3 )?

您是否使用QueryParser.escape(String)正确转义所有内容?

我正在使用的代码:

String node = "objA/*";   

 Query node_query = MultiFieldQueryParser.parse(node, "nodeName", new WhitespaceAnalyzer());

 BooleanQuery bq = new BooleanQuery();  

 bq.add(node_query, BooleanClause.Occur.MUST);

 System.out.println("We're asking for - " + bq);  

 IndexSearcher looker = new IndexSearcher(rep_index);

 Hits hits = looker.search(bq);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM