2011-09-03 42 views
1

我是新來的全文搜索PostgreSQL和發現像字典和停止詞的東西。是否可以在PostgreSQL中動態創建字典?

我有許多文字很多單詞的表。我想創建自己的字典,並將前30個最常用的詞作爲停用詞。

是否有可能在運行時執行此操作?

+1

你的模式是什麼?什麼樣的數據存儲在你的表中? – cdhowie

+0

@cdhowie停止詞是像「the」,「of」,「in」等詞。架構很簡單,每一行都是一個詞,一個字典不是我想要發明的東西,是一件事那個PostgreSQL有支持,但是我沒有找到可以在運行時用我想要的數據創建我自己的。 –

+0

如果搜索是你之後的話,那麼你應該保持原樣並且考慮實現一個像elasticsearch(http://www.elasticsearch.org/)這樣的搜索特定解決方案。通過這種方式,您將獲得一切搜索引擎的強大功能,您還將離開數據庫來處理數據輸入/輸出。 – Dimitris

回答

1

任何事情都是可能的。並非一切都可行。

你可以做的事情沒有太多的困難是創建一個像pl/perlU這樣的語言的存儲過程,該語言分解單詞,分析它們並將停止詞寫入文件。您必須執行pg_ctl reload以確保使用新的停用詞文件。但是,我不認爲你可以在搜索時動態地確定停用詞,因爲如果你搜索字符串來查找停用詞,那麼在全文搜索中沒有太多意義。

實際的停用詞文件只是一個換行的單詞列表。另外,我認爲你需要從一個模板開始,以達到目的。試圖動態發現詞幹會很困難且容易出錯。

相關問題