【问题标题】:Database search using a support table for FULLTEXT search使用 FULLTEXT 搜索的支持表进行数据库搜索
【发布时间】:2017-03-21 09:53:26
【问题描述】:

我正在为 REST API 实现搜索功能,这是我第一次处理大型数据库搜索。

My MySQL Location 表有以下列

| id | name | email | phone | postcode | address | verified |

用户可以通过name, email, phone, postcode or address搜索位置。

输入搜索字符串不分隔不同的字段,即只有一个输入文本框,并且该字符串与上面的每个可搜索字段匹配(这是故意想要的)。

到目前为止,我一直在做的是获取输入字符串并为每个可搜索列运行 MATCH ... AGAINST 查询,合并结果并返回。

但是,我最好创建一个包含两列的支持索引表 (location_query)。

| location_id | match_query |

添加位置后,我可以向 location_query 添加一个新行,其值类似于

0 | {NAME} {EMAIL} {PHONE} {POSTCODE} {ADDRESS}

然后简单地在 match_query 列上运行 FULLTEXT 搜索?

这行得通吗?

【问题讨论】:

    标签: php mysql sql full-text-search full-text-indexing


    【解决方案1】:

    您没有提供有关性能要求、数据量和当前用户负载的任何详细信息,但我建议使用搜索引擎(例如 Apache Solr)而不是 RDBMS。 这允许对索引和搜索策略进行细粒度控制以及更好的性能。

    【讨论】:

    • 您好,感谢您的回答。我目前没有任何具体的性能要求,目前只有模拟数据,这不是一个专业的应用程序,而是一个学习项目,这意味着用户负载也没有。我主要试图以可扩展性为目标。我不了解数据库搜索引擎,并将开始研究它们。非常感谢
    • @WiserTheBassist,你可以从 Apache Solr 入手,它稳定且对初学者非常友好,具有描述性文档和社区。​​span>
    • 是的,我一直在研究它,但是我使用的是共享主机计划并且仅限于 cPanel,所以我不相信我可以安装 Apache Solr 或任何其他数据库搜索引擎。跨度>
    猜你喜欢
    • 1970-01-01
    • 2010-10-14
    • 2018-07-03
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 2010-11-22
    • 2011-10-26
    相关资源
    最近更新 更多