首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何显示以苹果开头的单词,而不是显示每个使用FTS的苹果?

如何显示以苹果开头的单词,而不是显示每个使用FTS的苹果?
EN

Stack Overflow用户
提问于 2014-01-11 15:57:52
回答 2查看 120关注 0票数 0

我目前正在使用来自使用FTS的SearchableDictionary的示例,但是当我输入单词" apple“时,它会显示所有的苹果单词,而不仅仅是以苹果开头的单词。我想知道是否有一个列表,如: 1)苹果派

而不是亚当的苹果苹果派苹果派

使用android FTS。

根据我从FTS了解到的情况,它使用匹配而不是喜欢,它的功能类似于普通SQLite查询的%

如果有人能告诉我该怎么做,我会非常感激的。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-12 11:09:39

在代码中尝试以下查询:

代码语言:javascript
复制
SELECT * FROM TABLE_NAME WHERE Column_name MATCH 'apple*';

检查此链接:3

FTS引擎通过偏移虚拟函数提供该信息。尝尝这个

代码语言:javascript
复制
SELECT offsets(docs) FROM docs WHERE docs MATCH 'apple*';

在代码中输入以下内容:

代码语言:javascript
复制
 Cursor cursor = database.rawQuery("SELECT column_name, offsets(Tablename) FROM entries WHERE column_name MATCH '"apple *"'",null);

然后使用光标。

票数 0
EN

Stack Overflow用户

发布于 2014-01-13 14:34:31

这就是我在SearchableDictionary的SearchableDictionary文件中所做的。我将一些方法代码修改为:

代码语言:javascript
复制
     public Cursor getWordMatches(String query, String[] columns)
     {
        String selection = KEY_WORD + " >='" + query +"'"; 
        return query(selection, columns);
     }


     private Cursor query(String selection, String[] columns)
     {

            SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
            builder.setTables(FTS_VIRTUAL_TABLE);
            builder.setProjectionMap(mColumnMap);

            Cursor cursor = builder.query(mDatabaseOpenHelper.getReadableDatabase(),
                   columns,selection,null, null,  null, KEY_WORD );

            if (cursor == null) {
                return null;
            } else if (!cursor.moveToFirst()) {
                cursor.close();
                return null;
            }
            return cursor;
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21064429

复制
相关文章

相似问题

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