【问题标题】:PHP AJAX Live Search: display all possible matchesPHP AJAX 实时搜索:显示所有可能的匹配项
【发布时间】:2018-02-13 10:50:05
【问题描述】:

我在一个网站上集成了live search script of W3 Schools,它运行良好。但是,它只显示完全匹配。

例如在演示中,如果你输入“CSS 边框”,你会得到“CSS 边框属性”。这可以。但是,如果您搜索“CSS 属性”,则不会出现任何建议。

是否可以修改他们的脚本,使其显示包含相同单词的所有结果,而不管顺序如何?

【问题讨论】:

  • 您可以展示您拥有的代码吗?
  • 感谢您的及时答复。该代码与page of W3 Schools 上提供的代码相同。

标签: php ajax livesearch


【解决方案1】:

最好的方法是使用mysql全文索引,然后使用自然语言匹配查询如下:

SELECT 
  `your_fulltext_indexed_field`, 
  MATCH (`your_fulltext_indexed_field`) AGAINST ('Your Search Phrase' IN NATURAL LANGUAGE MODE) AS match_score
FROM 
  `your_table` 
WHERE 
  MATCH (`your_fulltext_indexed_field`) AGAINST ('Your Search Phrase' IN NATURAL LANGUAGE MODE);

提供的示例将消除不匹配的记录,并将结果从最相关到​​最不相关排序。 你可以在mysql官方文档中找到详细的描述here

【讨论】:

  • 非常感谢您抽出宝贵时间提供帮助!你认为没有数据库就可以做到这一点吗?我目前使用的是 XML 文件,没有数据库。
  • 另一种方法是使用正则表达式,但与数据库选项相比会复杂得多。这里有一些有用的链接可供检查:Regex playgroundPHP's preg_match function
猜你喜欢
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多