我要搜索@2
字。我的模式是KEY("\\@2")
。我的查询很可靠;
if(querys==null) {
querys = new ArrayList<Query>();
querys.add(new RegexpQuery(new Term("content",RegexPattern.KEY.getPattern())));
}
搜索是
if(topDocs==null) {
topDocs = new ArrayList<TopDocs>();
for(int i =0;i<querys.size();i++) {
topDocs.add(searcher.search(querys.get(i),100000));
}
}
例如;
KEY("Alex")
,我正在索引包含“ Alex”字样的数据,并且得到1分。
如果KEY("@x")
我也得到1分,因为'@'代表任何字符串。
但是我需要为邮件正则表达式搜索保留字符@。我该如何解决?
如果我直接尝试KEY("@2")
将会发现:
任何字符串+结尾2
Lucene说,如果您想使用@等保留字符,则需要使用\ @ 2这样的\字符,但是当我尝试得分为0时。