要知道文本如何精确匹配,您需要fuzzystrmatch
PostgreSQL模块。它提供fuzzystrmatch
和difference
等功能,可以估算两个字符串之间的相似性。
我在这样的查询中有多个条件:
SELECT * FROM image WHERE name LIKE '%text%' AND group_id = 10 LIMIT 1
WHERE语句包含3个条件:
如果我想按相关性对结果排序,那取决于:
这是两个问题合而为一,但我认为有时将它们组合起来会很方便。借此,我指的是我的前任职位(Way to try multiple SELECTs till a result is available?)引起的问题。
提前感谢!
我在这样的查询中有多个条件:SELECT * FROM image WHERE name LIKE'%text%'AND group_id = 10 LIMIT 1 WHERE语句由3个条件组成:文本匹配外部匹配... ...> >
要知道文本如何精确匹配,您需要fuzzystrmatch
PostgreSQL模块。它提供fuzzystrmatch
和difference
等功能,可以估算两个字符串之间的相似性。
然后,您可以在某些条件下构建查询,例如:
levenshtein
您可以调整 SELECT *
FROM image
WHERE name LIKE '%text%'
AND ( group_id = 10
OR second_field = 4
OR thirth_field = 5
)
ORDER BY ( (group_id=10)::int
+ (second_field=4)::int
+ (thirth_field=5)::int
) * weight_1
+ (strlen(name) - levenshtein('text',name)) * weight_2
和weight_1
以优先选择文字距离或满足的条件数。
要知道文本如何精确匹配,您需要fuzzystrmatch
PostgreSQL模块。它提供fuzzystrmatch
和difference
等功能,可以估算两个字符串之间的相似性。