以编程方式在sqlite数据库中搜索最佳匹配?

时间:2016-06-30 16:32:58

标签: android algorithm sqlite search

我目前正在应用程序中实现搜索功能,以获取用户输入并查询数据库以获得类似结果。我创建了以下数据库查询:

String proQuery = "SELECT * FROM " + DATABASE_TABLE + " WHERE "
                + KEY_NAME  + " LIKE '%" + keyword +"%'";

显然,由于非常通用的sql语句,此查询有许多限制。例如,如果我开始在单词的中间键入内容,如果数据库中的行号较低,它将首先显示在列表中。

是否存在有助于提供比这种非常通用的sql语句更智能的搜索功能的库?我不确定哪些关键字可以描述我正在寻找的功能,是否有一些"搜索算法"对于android?

1 个答案:

答案 0 :(得分:0)

也许UNION正是您所寻找的:

SELECT * FROM (
  SELECT * FROM table_name WHERE keyname LIKE 'keyword%' ORDER BY keyname
) alias_t1

UNION ALL

SELECT * FROM (
  SELECT * FROM table_name WHERE keyname LIKE '%keyword%' AND keyname NOT LIKE 'keyword%' ORDER BY keyname
) alias_t2;