簡體   English   中英

hibernate 搜索索引一個實體到兩個不同的索引

[英]hibernate search indexing one entity to two different indexes

我想根據情況將一個實體索引到不同的索引。

例如,如果我有一個如下所示的 Fruit 實體

@Indexed
public class Fruit {

    @NumericField(forField = "id")
    private Long id;

    @Field(analyze = Analyze.NO)
    private String name;
}

是否可以根據名稱值索引到不同的索引?

名稱=“蘋果”-> index_1

名稱 = “橙色”-> index_2

首先,我建議您重新考慮是否真的需要這個。

如果每個“水果名稱”的數據集完全不同(某些字段只為一個“水果名稱”填寫,或者它們的內容對於一個“水果名稱”來說要大得多),這是有道理的。 我個人會重新考慮類型層次結構,但這並不總是你可以控制的。 話雖如此,請注意,目前您仍然必須為兩個“水果名稱”使用相同的映射(相同的字段); 您將只有兩個不同的索引,它們可能具有不同的低級設置(存儲選項,...)。

如果每個“水果名稱”的數據集相似(相同的字段、相似的內容、經常一起查詢),則將它們拆分到兩個索引中幾乎沒有什么功能:您只需要擔心文件數量會增加一倍備份等。您可能會獲得性能改進,但是通過調整合並設置以控制組成索引的段數,您可以再次獲得類似的結果。

如果您確實需要根據“水果名稱”對數據進行分區......這里是如何做到的。 該功能稱為“分片”:

Hibernate Search 6 將在未來的更新中具有基於屬性對單一類型數據進行分區的專用功能; HSEARCH-3683 現在你只能使用路由/分片。

暫無
暫無

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

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