我有一個從pdf文件目錄生成的solr索引,並且相應的pdf文件本身是相應的元數據字段。不過,我想爲我的用戶提供一個選項,用於在查詢中排除從PDF中索引的任何文本。這是因爲查詢結果將基於元數據字段,而不是被pdf文件中的巨大文本所偏向。如何排除在索引查詢中從PDF索引的文本
我想過也許有兩個索引(核心) - 一個與索引的PDF文件和一個沒有。
還有別的辦法嗎?
我有一個從pdf文件目錄生成的solr索引,並且相應的pdf文件本身是相應的元數據字段。不過,我想爲我的用戶提供一個選項,用於在查詢中排除從PDF中索引的任何文本。這是因爲查詢結果將基於元數據字段,而不是被pdf文件中的巨大文本所偏向。如何排除在索引查詢中從PDF索引的文本
我想過也許有兩個索引(核心) - 一個與索引的PDF文件和一個沒有。
還有別的辦法嗎?
您不需要使用2個單獨的索引。您可以使用edismax
解析器並在查詢時指定qf
參數。這將有助於確定搜索哪些字段。
聽起來就像您正在對默認字段進行常規搜索。這意味着你有很多copyField指令(或者只有一個copyField * - >文本),其中包括PDF內容字段。
您可以創建第二個目標並複製除PDF內容字段以外的所有內容。通過這種方式,用戶可以搜索另一個組合字段。
但是,請記住,它會根據目標字段的分析鏈解析所有內容。因此,帶有源字段列表的eDisMax可能是更好的方法。並且,請記住,您可以使用多個請求處理程序(如'select')並在其中定義不同的默認參數。這通常會使客戶端代碼更容易一些。
你可以看一下field aliases
如果你有3個索引字段
然後,您可以創建兩個字段別名
一個優點是,如果你的用戶有像q=quicksearch:value書籤,您可以更改別名快速搜索,而不會影響用戶的書籤。