【问题标题】:Create a custom Lemma or Stem Dictionary for the Fulltext search in RDBMS: MySQL, PostgreSQL, MariaDb为 RDBMS 中的全文搜索创建自定义引理或词干字典:MySQL、PostgreSQL、MariaDb
【发布时间】:2021-05-18 07:51:35
【问题描述】:

我有自己的非英语词典,其中包含 CSV 格式的单词,其中每一行代表一个单词。一行以单词的基本形式开头,然后是其所有变形形式。

我想使用该文件创建自己的字典,供 FULLTEXT 搜索使用。

我更喜欢将 MySQL 与 FULLTEXT 搜索一起使用,但如果无法将 MySQL 与自定义字典一起使用,那么我可以将我的项目切换到 PostgreSQL 或 MariaDB。

如何让 MySQL 或其他 RDBMS 使用自定义字典进行 FULLTEXT 搜索? 如果有一个解决方案也适用于 SQLite,这样它也可以部署到移动应用程序中,那就太好了。

到目前为止,我发现相关链接不幸没有说明如何做到这一点:

MySQL Stemming for full-text 状态:未分配

PostgreSQL Dictionaries

如果使用这些 RDBMS 中的任何一个都无法使用引理字典进行 FULLTEXT 搜索,我认为应该可以为 PostgreSQL 创建至少一个词干字典作为其扩展,但我还没有为 PostgreSQL 做任何扩展并且不要不知道从哪里开始,尤其是在为 FULLTEXT 搜索创建自己的字典的上下文中。

【问题讨论】:

  • 您可以在 Postgres 中使用 hunspell 字典:github.com/postgrespro/hunspell_dicts - 我认为 .affix 文件是支持词干提取所需的文件。要启用它们,您实际上并不需要构建扩展。将文件复制到正确的目录后,据我所知,您只需要运行create dictionary。这也可能会有所帮助:github.com/EvanCarroll/pg_hunspell

标签: mysql postgresql dictionary stemming lemmatization


【解决方案1】:

如果您目前使用 MySQL,那么您可以使用 ngram Full-Text Parser 中指定的 ngram 插件(您可能还想查看 this 文章)。

关于您提供的 PostgreSQL 链接,我认为您实际上对此没有任何疑问,如何配置它是直截了当的。

【讨论】:

    猜你喜欢
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 2021-11-13
    • 2017-07-12
    • 1970-01-01
    相关资源
    最近更新 更多