【问题标题】:Need suggestion of alternative to Fulltext search需要替代全文搜索的建议
【发布时间】:2011-07-25 12:04:41
【问题描述】:

我需要一个轻量级的快速搜索解决方案。

今天我在布尔模式下使用全文,其中每个搜索词在结果中都是强制性的。

该功能速度快,运行良好,符合要求。

但某些全文限制,http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html,似乎是个问题。该站点位于托管服务器上,我不允许更改 mysql 设置(例如最小长度)

例如 搜索一定能找到red11ab.cd今天的全文解决方案找不到的。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    http://sphinxsearch.com/ 就是你要找的东西

    尽管您必须了解较小的单词会找到较大的索引。

    【讨论】:

      【解决方案2】:

      使用 Lucene,它经常用 MySQL 实现,它会更快,功能更丰富。

      使用内置的 FTS 引擎是相对不好的做法,特别是因为它不能与稍微可靠的 InnoDB 引擎一起使用。

      【讨论】:

        【解决方案3】:

        唯一想到的就是根据您可以找到的出现次数进行搜索。您的实际索引方法可能会有所不同,具体取决于数据库提供的内容。

        假设数据库大小不是问题,一个(非常)基本的方法是将搜索 blob(例如,stackoverflow 上的帖子)分解为每个单词,对其进行规范化(删除复数,去除“逻辑”单词,例如等等)然后将每个单词连同标识索引资源的 ID 一起插入为新记录。

        计算 ID 的实例,按数量排序,数字越大 = 越相关。

        虽然不完全是我的领域,所以要小心! =]

        【讨论】:

        • 所以基本上从零开始构建自己的搜索功能逻辑?呼:)
        【解决方案4】:

        我建议你尝试距离搜索:Levenshtein

        或者搜索“N-gram fulltext indexing”。

        【讨论】:

          【解决方案5】:

          我还没有搞砸它,但我不久前阅读了全文搜索的理论(至少使用 mysql)。

          如果我没记错的话,您可以使用全文搜索来搜索您想要的内容,但您需要进行配置(我认为是重新编译)以使其在较少数量的搜索字符上工作。我认为它设置为默认的 4 个字符数。您需要将其更改为 2 个字符的长度并添加一些其他选项并测试您获得的结果。

          如果这不正确,请有人纠正我。我宁愿不把他扔在红鲱鱼上。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-11-10
            • 1970-01-01
            • 1970-01-01
            • 2011-12-30
            • 2010-10-03
            相关资源
            最近更新 更多