首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与常量相比,按匹配字数的降序选择属性

与常量相比,按匹配字数的降序选择属性
EN

Stack Overflow用户
提问于 2012-09-28 02:27:22
回答 1查看 173关注 0票数 0

我面临着一个数据库(特别是sqlite)查询,我不确定如何处理它。

我正在寻找所有在'name‘属性和一个常量之间有1-n个单词匹配的元组。按降序排序。

例如,它是一个包含食物项目的数据库。如果常量是"Maranatha Natural Almond Butter 26 of轻轻烘焙“,我希望数据库中包含该常量中至少一个单词的任何元组都被返回。例如,"Almond Butter Natural“会在"Maranatha Natural”之前,而"Almond“会在”Almond“之前,等等。

EN

回答 1

Stack Overflow用户

发布于 2012-09-28 04:51:34

匹配单词是SQLite的full-text search extension的设计目标。请阅读该页面以了解SQLite必须如何编译以及什么是可能的,但我将添加一些备注:

简单的匹配是通过如下查询来完成的:

代码语言:javascript
复制
SELECT * FROM foods_fts_tab WHERE name MATCH 'Maranatha Natural Almond etc.'

这将只返回至少有一个单词匹配的所有记录。

您可以使用辅助函数返回的信息对匹配进行加权。例如,

代码语言:javascript
复制
SELECT ... ORDER BY length(offsets(foods_fts_tab)) DESC

将按匹配单词的数量排序。

您正在询问单词匹配的数量,但真正的搜索引擎还使用其他信息来计算相关性分数。请参见第4.3节中的matchinfo()函数和附录A中的示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12627848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档