【问题标题】:Best searching library for mobile database移动数据库的最佳搜索库
【发布时间】:2020-09-22 23:09:20
【问题描述】:

目前,我正在开发一个包含超过 100 万个条目的庞大数据集的 android 项目。如下所示:

data class Point(var address: String, var location: Location)

我需要实现搜索方法来搜索所有条目的地址。我试图将数据集转换为objectbox 数据库。但是,虽然我索引了地址字段,但搜索性能并没有我预期的那么好。每个搜索查询大约需要 10 秒。以下是我使用 objectBox 进行查询的方式:

val list = ObjectBox.box.query()
            .contains(Point_.address, keyword)
            .build()

您对如何进行性能更好的搜索有什么建议吗?或者可能是不同的搜索引擎?

【问题讨论】:

  • 使用 ObjectBox 的每个查询需要 10 秒?不知道你有没有找到更好的解决方案>
  • @LeoK 是的,我不得不使用全文搜索库来提高性能。
  • 谢谢。愿意分享您使用的库吗?
  • @LeoK 我正在使用这个库:github.com/lukhnos/lucenestudy/tree/…。每个查询大约需要 100 毫秒。
  • 谢谢。所以它是一个搜索引擎?您是使用数据库来存储数据,还是只是将它们存储在普通文件中?我实际上使用 ObjectBox 来管理超过 500,000 条文本记录。一段文本的搜索是非常互动的。我没有测量速度,但它似乎在一秒钟内做出反应。

标签: android search objectbox


【解决方案1】:

默认情况下,ObjectBox 中的字符串查询忽略大小写。如果使用索引,最好使用区分大小写的查询。这应该会更好地执行数量级。例如:

val list = ObjectBox.box.query()
            .contains(Point_.address, keyword, StringOrder.CASE_SENSITIVE)
            .build()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 2011-09-18
    相关资源
    最近更新 更多