java在Lucene中索引正则表达式并搜索输入
我已经在Lucene中为正则表达式编制了索引,是否有可能生成Lucene查询来使用标准Analyzer在索引正则表达式上搜索我的给定输入
org.apache.lucene.search.Query luceneQuery50=queryBuilder4.keyword().wildcard().onField("RegularExpression").matching("9876654").createQuery();
字段“RegularExpression”存储为字符串对象
编辑
Hibernate搜索与注释一起使用:
@Indexed public class NumbersTbl { @Field public String RegularExpression; }
# 1 楼答案
如果搜索数字,请确保在创建Field时,将其指定为Field.Index.NOT_ANALYZED,否则,在索引之前,分析器将删除数字
编辑
有关更多详细信息,请参阅此答案Find regular expression match using Lucene?
EDIT2
您可以在
@Field
注释中指定不希望对字段进行分析。这将保留索引字段“原样”的内容。默认值为Analyze.YES
。咨询docs另外,由于使用Hibernate搜索,您可能希望将Lucene查询包装到Hibernate查询中,请参见getting started guide。可能您已经这样做了,但无法从您发布的代码中分辨出来。如果你想得到有用的答案,一般来说,我建议你发布更多的代码。如果你仔细想想,很难从一行代码中分辨出哪里出了问题