【问题标题】:Programmatically search for best match in sqlite database?以编程方式在 sqlite 数据库中搜索最佳匹配?
【发布时间】:2016-06-30 16:32:57
【问题描述】:

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

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

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

有没有比这个非常通用的 sql 语句更智能的搜索功能的库?我不确定哪些关键字可以描述我正在寻找的这个功能,是否有一些适用于 android 的“搜索算法”字段?

【问题讨论】:

  • 这里提出了同样的问题:best match for sql
  • 有处理这种逻辑的第三方库吗?还是这更像是一种“实现自己并边做边学”的情况?

标签: android algorithm sqlite search


【解决方案1】:

也许 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;

【讨论】:

猜你喜欢
  • 2010-11-13
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多