带有通配符的Lucene多语言顺序搜索



我一直在尝试进行lucene搜索查询,其中输入"Foo B"将返回"Foo Bar"、Foo Bear、Foo Build"等,但不会返回ID为"Foo"且在其"description"字段中包含单词"Bar"的记录。

我已经研究了多语言序列,但它从未返回任何结果,下面是我一直在尝试的

        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();

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

已经修复,您创建的查询应该与jobTitle字段中的术语"entry""artist"匹配。

最新更新