Full-Text-Search

使用 Solr/Lucene 搜尋非文本表?

  • February 4, 2013

我正在創建一個 Web 應用程序來檢索一個大(4m 行)表的子集。4m 行每年只更換一次。該表有 200 多列布爾和數字類型。它沒有文本列。

使用者將查詢該表的子集以供下載。

我對 PostgreSQL 9.1 數據庫比較熟悉,我的計劃是:

  • 該網路應用程序將幫助使用者創建諸如“WHERE a=3 AND b=true AND c>300”之類的查詢
  • 數據庫將為最常用的列提供適當的索引。

現在..我在這裡讀到: https ://stackoverflow.com/questions/10053050/why-is-solr-so-much-faster-than-postgres :

我最近從 Postgres 切換到 Solr,發現我們的查詢速度提高了約 50 倍。我們執行的查詢涉及多個範圍,我們的數據是車輛列表。例如:“查找所有里程 < 50,000 的車輛, $ 5,000 < price < $ 10,000,製造=馬自達……”

所以現在我想知道:即使不涉及全文搜尋,Solr、Lucene、ElasticSearch、Amazon Cloud Search 搜尋是否會比 PostgreSQL 更快?

即使不涉及全文搜尋,Solr/Lucene 搜尋是否會/能否比 PostgreSQL 更快?

是的。根據您引用的範例,對於某些案例,它可能比關係數據庫快很多倍。真的不足為奇。

Solr是一個搜尋引擎。PostgreSQL是一個關係數據庫引擎。

Solr是為了做好一件事而從頭開始建構的,搜尋。它不能完成事務數據庫系統的工作。Solr不能保證 ACID 合規性,它不能有效地管理並發,它不是 OLTP 工作負載的可行候選者。

PostgreSQL是從頭開始建構的,目的是做好一件事,即事務處理。它還可以提供搜尋類型的設施,但這不是它的主要作用。它確實保證了 ACID 合規性,它確實管理並發,它不是一個搜尋引擎。

4m 行每年只更換一次。

在這種情況下,您可能不需要關係數據庫引擎的關鍵特性。

你需要一個搜尋引擎。可能是SolrLuceneElasticSearchAmazon Cloud Search或其他幾十個之一,但首先它是一個搜尋平台,而不是一個關係數據庫。

引用自:https://dba.stackexchange.com/questions/34014