我一直在尝试进行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();
答案 0 :(得分:0)
我看到的可能问题是大写。 "Entry"
和"Artist"
未通过查询解析器传递,因此不会通过分析器运行,因此区分大小写。您正在编制索引的字段可能使用包含LowercaseFilter
的分析器进行分析,因此最终字词不包含前导大写字母。在不知道你如何索引你的文件的情况下,我不能说这将会有任何确定性,但似乎最有可能。
修复后,您创建的查询应与jobTitle字段中的任何字词"entry"
或"artist"
匹配。