2011-09-03 43 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以确保使用新的停用词文件。但是,我不认为你可以在搜索时动态地确定停用词,因为如果你搜索字符串来查找停用词,那么在全文搜索中没有太多意义。

实际的停用词文件只是一个换行的单词列表。另外,我认为你需要从一个模板开始,以达到目的。试图动态发现词干会很困难且容易出错。

相关问题