我目前正在實施Solr解決方案,用戶可以選擇各種選項來搜索產品。現在我可以將所有這些選項合併爲一個單一的長查詢,或者我可以使用一個查詢來獲取所有內容(*:*)並將查詢過濾器應用於該查詢。Solr/Lucene:常規查詢和過濾器查詢之間的區別
常規查詢:
q=color:blue AND price:500
使用查詢過濾器查詢:
q=*:*&fq=color:blue&fq=price:500
結果是完全一樣的。那麼區別是什麼呢?我應該什麼時候使用其中一種?
我目前正在實施Solr解決方案,用戶可以選擇各種選項來搜索產品。現在我可以將所有這些選項合併爲一個單一的長查詢,或者我可以使用一個查詢來獲取所有內容(*:*)並將查詢過濾器應用於該查詢。Solr/Lucene:常規查詢和過濾器查詢之間的區別
常規查詢:
q=color:blue AND price:500
使用查詢過濾器查詢:
q=*:*&fq=color:blue&fq=price:500
結果是完全一樣的。那麼區別是什麼呢?我應該什麼時候使用其中一種?
過濾查詢不會影響文檔的分數。 此外,它們在緩存中很有用,用fq指定的查詢獨立於主查詢緩存。 Document for solr query parameters
典型地,在任何生產系統應該使用不支持前者的語法Dismax
請求處理程序的一個變體中,必須在使用濾波器來執行濾波,因此在這種情況下,查詢。