gpt4 book ai didi

mysql - 排名搜索关键词

转载 作者:行者123 更新时间:2023-11-29 01:45:41 25 4
gpt4 key购买 nike

问题是:如何根据时间和搜索次数对我的 Web 应用程序中搜索查询中使用的关键字进行排名?

用户在文本框中键入他的搜索查询。通过 AJAX,我需要向用户返回一些建议。这些建议基于对该关键字的搜索次数,并且应按 最近搜索排序。

例如,如果用户输入的搜索词为“hang”,则建议的顺序应为:“hangover part 2”、“hangover”。

我应该如何设计数据库来存储搜索查询?我应该如何编写sql查询来获取建议?

最佳答案

对于查询建议,一个好的方法是计算每个搜索查询的出现次数(最好不要计算同一用户重复查询的次数)。你将有一个像这样的文件/表/东西(查询,计数):

"britney spears" 12
"kelly clarkson" 5
"billy joel" 27
"query abcdef" 2
"lady gaga" 39
...

然后你可以按出现的降序排序:

"lady gaga" 39
"billy joel" 27
"britney spears" 12
"lady xyz" 5
"query abcdef" 2
...

然后当有人搜索 "lady" 时,对从文件/表格/某物顶部到底部的所有字符串进行前缀搜索。如果您只需要 K 个建议,您将只找到 Top-K 个建议。

您可以使用一个简单的文件来实现它,或者您也可以有一个计数查询表并执行类似于以下的查询:

SELECT q.query from (SELECT * from search_queries order by query_count DESC) as q where q.query LIKE "prefix%" LIMIT 0,K

两个注意事项:

  1. 有更好(也更难)的方法来做到这一点。例如,亚马逊有一个非常好的查询建议。
  2. 所提供的解决方案只会建议以用户查询开头的查询。喜欢:

    "lady"=> ["lady gaga", "lady xyz"]

查询“lady”不会匹配“gaga lady”。为了使它们匹配,您需要通过数据库的全文搜索支持或外部库(例如 Lucene)进行查询索引。 .

关于mysql - 排名搜索关键词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7403574/

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