代码之家  ›  专栏  ›  技术社区  ›  Ben G

检查其他字符串的列表是否与另一个字符串相似

  •  0
  • Ben G  · 技术社区  · 15 年前

    有没有一种简单的方法来检查字符串列表是否与给定的字符串相似?

    例如:

    书 动物 一

    “一本关于动物的书”都能满足这个条件吗?

    我知道我可以写出书名,比如书名,'%book%','%animal%',比如书名,等等,但这似乎很难。

    我用它来自动完成,在那里我返回结果,结果中的每一个字。

    4 回复  |  直到 8 年前
        1
  •  0
  •   Thomas Clayson    15 年前

    伙计。。。将可搜索的列设为“全文”列,然后执行以下操作

    SELECT * FROM books WHERE MATCH(fulltext_column) AGAINST('animal book a')

    最佳方式。:)看见 http://devzone.zend.com/article/1304

        2
  •  0
  •   mlathe    15 年前

    http://lucene.apache.org/solr/ ,它让您索引数据,然后可以提供一个RESTAPI,您可以调用它来填充自动完成下拉列表。

        3
  •  0
  •   Mike Axiak    15 年前

    1) 执行一个包含大量WHERE子句的查询。

    2) 保留列的副本,并对所有单词进行排序。然后可以对搜索标记进行排序并执行查询:

    SELECT * FROM Table WHERE Title_sorted LIKE "%a%animal%book%"
    
        4
  •  0
  •   Jan Fabry    15 年前

    MySQL有一个全文搜索索引,我建议您研究一下以获得高效的结果。和Lucene在一起可能只是为了一个自动完成任务。