Java 在Lucene中索引正则表达式并搜索输入
我已经在Lucene中为正则表达式编制了索引,是否有可能生成Lucene查询来使用标准Analyzer在索引正则表达式上搜索我的给定输入Java 在Lucene中索引正则表达式并搜索输入,java,regex,lucene,hibernate-search,Java,Regex,Lucene,Hibernate Search,我已经在Lucene中为正则表达式编制了索引,是否有可能生成Lucene查询来使用标准Analyzer在索引正则表达式上搜索我的给定输入 org.apache.lucene.search.Query luceneQuery50=queryBuilder4.keyword().wildcard().onField(“RegularExpression”).matching(“9876654”).createQuery() 字段“RegularExpression”存储为字符串对象 编辑 Hiber
org.apache.lucene.search.Query luceneQuery50=queryBuilder4.keyword().wildcard().onField(“RegularExpression”).matching(“9876654”).createQuery()代码>
字段“RegularExpression”存储为字符串对象
编辑
Hibernate搜索与注释一起使用:
@Indexed public class NumbersTbl { @Field public String RegularExpression; }
如果搜索数字,请确保在创建时将其指定为,否则在索引之前,分析器将删除数字
编辑
有关更多详细信息,请参阅此答案
EDIT2
您可以在@字段
注释中指定不希望对字段进行分析。这将保留索引字段“原样”的内容。默认值为Analyze.YES
。咨询
另外,由于使用Hibernate搜索,您可能希望将Lucene查询包装到Hibernate查询中,请参见以下内容。可能您已经这样做了,但无法从您发布的代码中分辨出来。如果你想得到有用的答案,一般来说,我建议你发布更多的代码。仔细想想,很难从一行代码中分辨出哪里出了问题。我正在搜索的数字是输入,我必须与索引的正则表达式进行匹配,这是绝对清楚的。请修改您的帖子并添加创建的代码,该代码已写入索引,并且您希望通过查询找到。我正在使用Hibernate索引方法@index public class NumbersTbl{@Field public String regular expression;}
@Field(index=Index.YES, analyze=Analyze.NO)