簡體   English   中英

Lucene /休眠搜索-查詢相關集合?

[英]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)索引的文本進行分析,並且默認分析器適用:

  1. 輸入的下殼體
  2. 在空白處分開分割

因此,如果您將查詢定義為TermQuery(我假設這就是您所做的,因為它是最簡單的形式),則必須與令牌(不帶空格)的小寫形式進行匹配。

牢記這一點,您可以將所有關鍵字轉儲到Item實體的單個Blob字符串中,而無需將其映射為單獨的關鍵字,而是將它們鏈接在由空格分隔的單個字符串中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM