2
我試圖在我的Rails應用程序中實現pg_search
,並想知道是否有方法獲得與搜索查詢匹配的列?索引表內容由所有可搜索的列字段組成。如何獲得與搜索查詢匹配的列?
例如爲:
+-----------+----------+
| Firstname | Lastname |
+-----------+----------+
| John | Doe |
| Jane | Doe |
+-----------+----------+
將導致:
+----------+
| Content |
+----------+
| John Doe |
| Jane Doe |
+----------+
現在我不知道如果我的搜索查詢的名字或姓氏相匹配。是否有任何選項可以告訴pg_search
將列標題添加到內容列?例如:
+------------------------------------------+
| Content |
+------------------------------------------+
| {"firstname": "John", "Lastname": "Doe"} |
| {"firstname": "Jane", "Lastname": "Doe"} |
+------------------------------------------+
或者是否有任何可以滿足我需求的搜索選擇? pg_search
工作得很好,特別是因爲我的多租戶/ postgres架構體系結構。
謝謝!但我不明白在哪裏放置'tsvector'代碼 - 好吧,我不明白代碼本身,我應該看看文檔 - 但:這甚至可以用於多種搜索?如果有40個結果,那麼即使模型相同,是否也必須爲每一行執行select查詢?它不是一個性能殺手?由於我使用了4列以上,所以備選方案2不適用於我。我認爲最好的選擇是將JSON存儲在內容表中(因爲Postgres 9.4可以使用JSONB來完成)。 – Slevin
你是什麼意思「多重搜索」?我的第一個例子使用多個術語,如果這就是你問的問題。至於你的模型,這個代碼應該包含在你的模型中,當搜索運行時,這是對已經運行的基本選擇語句的補充,它是不是一個單獨的選擇語句。 –