gpt4 book ai didi

bool 模式下的mysql全文索引搜索与基于相似的搜索联合

转载 作者:行者123 更新时间:2023-11-29 00:34:24 29 4
gpt4 key购买 nike

在搜索我的数据库时,我希望真正相关的结果(我的 bool 搜索返回的结果)排名靠前,但与此同时我不希望完全忽略不太相关(例如)的结果。

目前我的查询看起来像这样。

(SELECT *, MATCH (col1,col2,col3,col4) AGAINST (query* in boolean mode) AS score
FROM table where match(col1,col2,col3,col4) against (query* in boolean mode)
order by score DESC)
UNION (SELECT * from table where col1 like query
or col2 like query or col2 like query or col4 like query)

这将返回一个错误,指出给定的两个 select 子句具有不同的列数。我知道这是因为“score”被添加为查询第一部分中的一列。
这个问题有解决方法吗?

最佳答案

只需向第二个查询添加一个假的列分数以及使用列别名。您不需要使用该值,但会使工会工作。例如:

(SELECT *, MATCH (col1,col2,col3,col4) AGAINST (query* in boolean mode) AS score
FROM table where match(col1,col2,col3,col4) against (query* in boolean mode)
order by score DESC)
UNION (SELECT *, 50 as score from table where col1 like query
or col2 like query or col2 like query or col4 like query)

您可以将 50 替换为您希望指定的任何默认分数。

关于 bool 模式下的mysql全文索引搜索与基于相似的搜索联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15036929/

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