我正在使用 Lucene+Hibernate Search,并选择 DefualtAnalyzer 作为分析器。但我不喜欢它,我只是希望输入的值可以准确匹配。例如,输入“我爱你”,会被解析为“[Ilo lov ove eyo you]”。
我只想我只想'我爱你'匹配'我爱你',如果不是'我爱你',你什么都找不到。
那么如何让它工作呢?
我正在使用 Lucene+Hibernate Search,并选择 DefualtAnalyzer 作为分析器。但我不喜欢它,我只是希望输入的值可以准确匹配。例如,输入“我爱你”,会被解析为“[Ilo lov ove eyo you]”。
我只想我只想'我爱你'匹配'我爱你',如果不是'我爱你',你什么都找不到。
那么如何让它工作呢?
像这样做:
FullTextSession fullTextSession = Search.getFullTextSession(session);
Transaction tx = fullTextSession.beginTransaction();
Querybuilder builder=fullTextSession.getSearchFactory().
buildQueryBuilder().forEntity(persistentClass).get();
Query luceneQuery=builder.keyword().
onField("fieldName").
ignoreAnalyzer().
matching(queryText).createQuery();
如果您想在索引过程中关闭分析,您需要使用:
@Field.analyze(Analyze.NO)