我在我的代碼中使用短語查詢搜索hibernate lucene。它正在工作,但我想要做精確搜索,這是大小寫不敏感。我嘗試了術語查詢但區分大小寫。 我想搜索如:lucene短語確切搜索
BeautifulRainy日。 如果我搜索「雨天」,結果應該是0次。 如果我搜索「美麗日」,結果應該是1次命中。 如果我搜索「日」,結果應該是0次。
基本上我想要java(.equalignorecase)類型的搜索不是(.contains)。我想繼續使用短語查詢,如果有可能的話。
我在我的代碼中使用短語查詢搜索hibernate lucene。它正在工作,但我想要做精確搜索,這是大小寫不敏感。我嘗試了術語查詢但區分大小寫。 我想搜索如:lucene短語確切搜索
BeautifulRainy日。 如果我搜索「雨天」,結果應該是0次。 如果我搜索「美麗日」,結果應該是1次命中。 如果我搜索「日」,結果應該是0次。
基本上我想要java(.equalignorecase)類型的搜索不是(.contains)。我想繼續使用短語查詢,如果有可能的話。
如果你想不區分大小寫的匹配,你必須索引你的數據不區分大小寫。
您可以這樣做,例如,使用字符串的toLowerCase()
值向您的班級添加其他字段,然後搜索該字段。
(或者休眠搜索允許不區分大小寫的索引有選擇嗎?)
嗨請通過此answer由我給出。它搜索確切的大小寫不敏感的術語。剛剛通過雙引號搜索字符串,充當完全匹配搜索。
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
是字段的名稱,所以地方的字段名稱,你已經在索引的時候使用。