Sql 安卓数据搜索

Sql 安卓数据搜索,sql,android,Sql,Android,目前,我希望在数据库中有三列用于注释: ID | Title | Content 该表可能有几百个条目。 我希望能够搜索部分内容。当Content为“这是一个测试句子”且用户搜索“test”甚至“te”时,应显示该行。 是否可以将此信息存储在SQLlite3数据库中,或者是否有方法获得更好的性能 数据库对于这种东西来说是很好的,只要确保使用索引,如果可以避免使用之类的在两边打开就行了 错误,它不使用索引 其中包含“%search%”之类的数据 很好,它使用索引 “搜索%”之类的数据 如果你有超

目前,我希望在数据库中有三列用于注释:

ID | Title | Content
该表可能有几百个条目。 我希望能够搜索部分内容。当
Content
为“这是一个测试句子”且用户搜索“test”甚至“te”时,应显示该行。 是否可以将此信息存储在SQLlite3数据库中,或者是否有方法获得更好的性能

  • 数据库对于这种东西来说是很好的,只要确保使用索引,如果可以避免使用
    之类的
    在两边打开就行了

    错误,它不使用索引

    其中包含“%search%”之类的数据

    很好,它使用索引

    “搜索%”之类的数据

  • 如果你有超过百万的记录,或者长文本。您可以将时间分类,并将其存储在不同的表中。这样,您将告诉用户仅在该类别中搜索

  • 确保您实现了右键文本更改事件+键计时器,因为您可能会很快发出db搜索请求,而用户尚未完成键入

  • 在移动/桌面环境中,建议等待下一次按键300毫秒

    为了解释我的意思:假设你想为“蓝光”搜索C

    • 在文本更改激发时,用户键入“b”,请求使用类似“b%”的搜索
    • 用户在文本更改中输入“l”,请求使用类似“bl%”的搜索
    • 用户在文本更改时输入“u”,请求使用类似“blu%”的搜索
    您将最终执行效率低下的查询,这需要很长时间

    你应该做:

    • 用户输入“b”,您应该等待300毫秒,等待下一个键
    • 用户输入“l”时,您应该等待300毫秒,等待下一个键
    • 用户输入“u”,文本长度达到3,允许搜索

    是的,可以将信息存储在SQLite3上。SQL将类似于:

    SELECT * FROM table_name WHERE Content LIKE '%test%'
    

    您的数据/内容的变化频率有多高?@Pentium:这有点取决于用户的行为,但我希望它不会有太大变化,而是保持不变。当我得到快速搜索时,我可以接受缓慢的内容更新。这种查询的性能如何?1000个长字符串条目需要多长时间?性能可以接受吗?1000个条目就可以了,当达到50k时会出现问题。这也取决于移动设备。如果我想找到像“蓝光真的很棒”这样的句子,我不是必须使用%blu%吗?或者我应该创建一个额外的表格,列出所有表格中的所有单词吗?在这种情况下,两边都需要像open一样。如果我是你,我会对这个设备做一个快速的研究,看看它如何处理100k记录。假设10k条目的搜索速度也很慢,那么您需要根据类别分割内容,并允许搜索受限记录。