gpt4 book ai didi

php - 改进搜索公式

转载 作者:行者123 更新时间:2023-11-29 04:26:21 25 4
gpt4 key购买 nike

我想制作一个搜索脚本,我可以在其中搜索多个单词,但该脚本会在所有行而不是特定行中找到单词。例如。

  __________________________   ________
|Cheese | | Search |
—————————————————————————— ————————

然后我写了一个 php 脚本:

SELECT * FROM table WHERE column1 = "$value" OR column2 = "$value" OR column3 = "$value" ... ;

这将显示任何列中出现单词“Cheese”的结果。问题是,我希望人们可以同时搜索“奶酪”和“厨房”,但我需要将这些词分开并搜索类似这样的内容:

SELECT * FROM table WHERE column1 = "$value" OR column2 = "$value" OR column3 = "$value" ... AND column1 = "$value2" OR column2 = "$value2" OR column3 = "$value2" ... ;

问题是我真的不知道该怎么做。无论是单词分离还是如何在 SQL 数据库中找到单词。我也不知道如何搜索“Cheese”是其中一部分的单词......比如“Cheesecake”..

如果有人知道如何制作这个,请帮助我......

谢谢。

最佳答案

你会想看看 MySQL 的全文索引:http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

全文索引为索引列中的每个单词创建一个索引(默认要求单词至少有 4 个字符,但这可以在 MySQL ini 文件中更改)。然后,您可以针对多个单词运行搜索,包括单词的开头(cheese* 将匹配 cheesecake...但请记住,无法使用索引使“cake”与 cheesecake 匹配,因为索引是按字母顺序排列的)。这样做的好处是:

  1. 比一系列 AND () OR () 语句快得多
  2. 能够返回相关性索引,所以你知道一行匹配所有关键字 5 次比具有once等其中一个词。

关于php - 改进搜索公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10489520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com