我正在使用Lucene + Hibernate Search,并选择DefualtAnalyzer作为分析器。 但我不喜欢它,我只是希望输入值可以准确匹配。 例如,输入“我爱你”,它将被分析为“[Ilo lov ove eyo you]”。
我只是想要我只想'我爱你'匹配'我爱你',如果它不是'我爱你',你就找不到任何东西。
那怎么让它运作?
答案 0 :(得分:1)
这样做:
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();
答案 1 :(得分:1)
如果您想在索引编制过程中关闭分析,则需要使用:
@Field.analyze(Analyze.NO)