[英]Lucene/Hibernate Search - Query associated collections?
我正在使用JPA / Hibernate和Hibernate Search(Lucene)編寫基於Seam的應用程序。 我有一個名為Item的對象,它與一個對象Keyword具有多對多關系。 看起來像這樣(省略了一些注釋):
@Indexed
public class Item {
...
@IndexedEmbedded
private List<Keyword> keywords;
...
}
@Indexed
public class Keyword {
...
@Field
private String value;
...
}
我希望能夠對包含特定關鍵字值的所有Item對象運行查詢。 我在數據庫中設置了許多測試對象,看來索引已正確創建。 但是,當我創建並運行查詢"keywords.value" = <MY KEYWORD VALUE>
我總是得到0個結果。
Hibernate Search / Lucene是否可以運行這種類型的查詢? 還有什么我應該做的嗎? 還有其他我可能會丟失的注釋嗎?
Hibernate Search非常適合這種查詢。 但是可以用更簡單的方式完成。
關於您的問題:將對由Hibernate Search(Lucene)索引的文本進行分析,並且默認分析器適用:
因此,如果您將查詢定義為TermQuery(我假設這就是您所做的,因為它是最簡單的形式),則必須與令牌(不帶空格)的小寫形式進行匹配。
牢記這一點,您可以將所有關鍵字轉儲到Item實體的單個Blob字符串中,而無需將其映射為單獨的關鍵字,而是將它們鏈接在由空格分隔的單個字符串中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.