我有一個複雜的查詢,它需要對某些字段進行全文搜索,並對其他字段進行基本限制。 Hibernate搜索文檔strongly advises against將數據庫查詢限制添加到全文搜索查詢,而不是recommends將所有必填字段放入全文索引。我遇到的問題是其他領域是不穩定的;值可能會每隔一分鐘左右發生一次更改,數據庫的更新可能會發生在執行搜索的JVM之外,因此很可能本地Lucene索引相對於這些字段已過時。將Hibernate搜索結果與關係數據庫查詢合併
在此尋找策略建議。到目前爲止我所得到的最好的結果是首先執行數據庫查詢(僅提取對象ID)並手動加入結果,然後執行全文搜索。並以某種方式有效地過濾來自數據庫的一組對象ID的Lucene結果。當然,我不知道每個單獨的查詢會得到多少結果,所以我擔心性能和內存。在最壞的情況下,每行可能會有數萬行。