Lucene multiphrasequery搜索带通配符

时间:2013-08-06 13:26:38

标签: search lucene wildcard multiple-columns phrase

我一直在尝试进行lucene搜索查询,其中输入" Foo B"会回归" Foo Bar",Foo Bear,Foo Build"但不会返回ID为" Foo"和#34; Bar"说它的描述'领域。

我已经研究过multiphrasequery但它永远不会返回任何结果,下面是我一直在尝试的

        Term firstTerm = new Term("jobTitle", "Entry");
        Term secondTerm = new Term("jobTitle", "Artist");
        Term asdTerm = new Term(fld)

        Term[] tTerms = new Term[]{firstTerm, secondTerm};
        MultiPhraseQuery multiPhrasequery = new MultiPhraseQuery();
            multiPhrasequery.add( tTerms );

             org.hibernate.Query hibQuery = fullTextSession.createFullTextQuery(multiPhrasequery, this.type).setSort(sort);
         results = hibQuery.list();

1 个答案:

答案 0 :(得分:0)

我看到的可能问题是大写。 "Entry""Artist"未通过查询解析器传递,因此不会通过分析器运行,因此区分大小写。您正在编制索引的字段可能使用包含LowercaseFilter的分析器进行分析,因此最终字词不包含前导大写字母。在不知道你如何索引你的文件的情况下,我不能说这将会有任何确定性,但似乎最有可能。

修复后,您创建的查询应与jobTitle字段中的任何字词"entry""artist"匹配。