|
|
1
3
你在找 Full-Text Searches WITH QUERY EXPANSION
MySQL通过使用
由于这些限制,MySQL扩展了一个非常好的特性,即所谓的全文搜索。从技术上讲,MySQL根据启用的全文搜索列的单词创建索引,并对该索引执行搜索。MySQL使用一种复杂的算法来确定与搜索查询匹配的行。 ALTER TABLE 或 CREATE INDEX 如果使用phpMyAdmin管理数据库,可以转到该表的结构,然后在该列的Action下单击More并选择Fulltext。 之后,您可以使用MATCH-AGAINST语法执行搜索。MATCH()获取要搜索的列。获取要搜索的字符串和指示要执行的搜索类型的可选修饰符。 使用查询扩展进行全文搜索:在某些情况下,用户希望根据所掌握的知识搜索信息。用户使用他们的经验来定义关键字来搜索信息,通常这些关键字太短。 为了帮助用户根据太短的关键字查找信息,MySQL全文搜索引擎引入了查询扩展的概念。 查询扩展用于扩展基于自动相关反馈(或盲查询扩展)的全文搜索结果。技术上,MySQL全文搜索引擎在使用查询扩展时执行以下步骤:
下面的示例演示如何搜索其产品名称或meta至少包含一个单词(shirt tshirt)的产品。
您可以在MYSQL文档(答案开头的链接)中阅读更多信息 here |
|
|
2
3
如果你还在设计这个系统的话,你的想法可能会有点不同。在搜索方面,只需做准确的搜索,并在数据库中做,因为这是更快的-但“从每个互动学习”。
类似地,当你有一个选项时,用户应该能够很容易地说“不是这个”,然后引导他们通过预先选择的项目层次结构,最终当他们选择一个时,你将他们的搜索词保存到该产品中。 因此,在几个月内,如果你有足够的用户,你将有一个丰富的有机搜索词数据集为您的产品类别与每个术语的信心水平。 |
|
|
3
2
SOUNDEX 在sql中
像这样的事情
this adaptation (也与UTF-8字符串兼容) 就我而言,soundex效率更高,这将取决于用户将如何与应用程序交互。 ElasticSearch 或 Algolia 会更有效率。 我从未使用过它,因为公司不允许我们使用第三方软件。所以我两个都试了 左旋戊烯 Soundex公司 |