Java lucene短语精确搜索

Java lucene短语精确搜索,java,hibernate,search,lucene,hibernate-search,Java,Hibernate,Search,Lucene,Hibernate Search,我在代码中使用短语查询进行hibernate lucene搜索。它可以工作,但我想进行不区分大小写的精确搜索。我尝试过术语查询,但它区分大小写。 我想像这样搜索: 美丽的雨天。 如果我搜索“雨天”,结果应该是0次点击。 如果我搜索“美丽的雨天”,结果应该是1命中。 如果我搜索“Day”,结果应该是0次点击 基本上,我想要java(.equalignorecase)类型搜索,而不是(.contains)。如果可能的话,我想继续使用短语查询。如果您想要不区分大小写的匹配,您必须为数据编制不区分大小写

我在代码中使用短语查询进行hibernate lucene搜索。它可以工作,但我想进行不区分大小写的精确搜索。我尝试过术语查询,但它区分大小写。 我想像这样搜索:

美丽的雨天。 如果我搜索“雨天”,结果应该是0次点击。 如果我搜索“美丽的雨天”,结果应该是1命中。 如果我搜索“Day”,结果应该是0次点击


基本上,我想要java(.equalignorecase)类型搜索,而不是(.contains)。如果可能的话,我想继续使用短语查询。

如果您想要不区分大小写的匹配,您必须为数据编制不区分大小写的索引

例如,可以使用字符串的
toLowerCase()
值向类中添加另一个字段,然后搜索该字段

(或者hibernate search允许使用选项进行不区分大小写的索引?

您好,请仔细阅读我给出的内容。这是一个完全不区分大小写的搜索词。刚刚用双引号传递了搜索字符串,它充当精确匹配搜索

QueryParser parser = new QueryParser(Version.LUCENE_34, "TITLE" ,new StandardAnalyzer(Version.LUCENE_34));

    Query query;

    query = parser.parse("\"beautifulrainy Day\"");

    TopDocs hits = searcher.search(query,3);
此处
TITLE
是字段的名称,因此请放置在索引时使用的字段名称