我不想用Analyzer做搜索,我该怎么办?

时间:2012-10-12 03:20:02

标签: lucene hibernate-search

我正在使用Lucene + Hibernate Search,并选择DefualtAnalyzer作为分析器。 但我不喜欢它,我只是希望输入值可以准确匹配。 例如,输入“我爱你”,它将被分析为“[Ilo lov ove eyo you]”。

我只是想要我只想'我爱你'匹配'我爱你',如果它不是'我爱你',你就找不到任何东西。

那怎么让它运作?

2 个答案:

答案 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)