繁体   English   中英

使用休眠搜索对短语进行模糊搜索

[英]Fuzzy search on a phrase using Hibernate Search

我正在使用Hibernate Search在我的Web应用程序上搜索电视节目的标题。

为了对关键字执行模糊搜索,我可以在keyword() fuzzy()上使用fuzzy()方法,但是我需要考虑整个标题,因此我使用了phrase()而不是keyword() 没有为phrase()定义方法fuzzy() ,所以我想知道是否有一种简单的方法可以使用Hibernate Search对短语进行模糊搜索。

如果您只需要带PhraseQuery (即,抛出了多余的单词),则可以在短语查询中设置PhraseQuery ,例如:

queryBuilder.phrase()
    .setSlop(2)
    .onField("myField")
    .sentance("this sentence missing something")
    .createQuery();

但是,我不知道Hibernate API中支持在短语中嵌入模糊查询的任何内容,但是在Lucene中,您可以使用SpanQuery API进行构建。 尤其需要SpanMultiTermQueryWrapperSpanNearQuery 就像是:

FuzzyQuery query1 = new FuzzyQuery(new Term("field", "fuzy"));
FuzzyQuery query2 = new FuzzyQuery(new Term("field", "phrse"));
Query wrappedQuery1 = new SpanMultiTermQueryWrapper<FuzzyQuery>(query1);
Query wrappedQuery2 = new SpanMultiTermQueryWrapper<FuzzyQuery>(query2);
SpanQuery[] clauses = {wrappedQuery1, wrappedQuery2};
SpanNearQuery(clauses, 0, true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM