在php sql数据库中搜索同义词

whlutmcx  于 2023-10-15  发布在  PHP
关注(0)|答案(2)|浏览(164)

我在php中的mysql数据库中搜索字符串,我正在使用like关键字进行搜索。问题是当我从用户输入同义词时。就像在数据库中,我有所有产品的名称鞋,用户输入鞋类或一些不匹配的words.how来搜索这些不同的条件。请在此指导。
目前我使用以下选择查询

Select * from table where name like '%user entered string%'

请指导如何应对这些情况

63lcw9qa

63lcw9qa1#

让我们总结一下。
让我们假设您有一个表products,我高度假设并希望它由具有唯一ID的产品组成。

products

id     product
1      Shoes
2      Trousers

如果你要添加另一个列,比如说,同义词,它看起来像这样:

products

id     product    synonyms
1      Shoes      Footwear, stuff on feet, 
2      Trousers

我们不想这样您必须选择同义词列,解析字符串,并确保在希望为每个产品添加新的同义词时不会破坏该列。
拥有一个原子数据库会更有意义,在那里你会有一个同义词表,每个同义词引用你的产品表中的唯一id,这样就很容易删除旧的同义词和添加新的同义词。

products

id     product
1      Shoes
2      Trousers

synonyms
id     product_id     synonym
1      1              Footwear
2      1              stuff on feet

如果原始的select like语句失败,则可以在此表中查找。
使用外部数据源也是一种可能性,但如果你想控制流并避免外部源,这可能是最合适的方法。

niknxzdl

niknxzdl2#

对我来说,最好的方法是,添加所有匹配的可能性关键字(鞋,鞋类,男装等)的所有产品(关键字栏),当你添加到基地,用户将搜索。并从此列(或表)中搜索产品。

相关问题