我目前正在使用来自使用FTS的SearchableDictionary的示例,但是当我输入单词" apple“时,它会显示所有的苹果单词,而不仅仅是以苹果开头的单词。我想知道是否有一个列表,如: 1)苹果派
而不是亚当的苹果苹果派苹果派
使用android FTS。
根据我从FTS了解到的情况,它使用匹配而不是喜欢,它的功能类似于普通SQLite查询的%
如果有人能告诉我该怎么做,我会非常感激的。
谢谢。
发布于 2014-01-12 11:09:39
在代码中尝试以下查询:
SELECT * FROM TABLE_NAME WHERE Column_name MATCH 'apple*';检查此链接:3
FTS引擎通过偏移虚拟函数提供该信息。尝尝这个
SELECT offsets(docs) FROM docs WHERE docs MATCH 'apple*';在代码中输入以下内容:
Cursor cursor = database.rawQuery("SELECT column_name, offsets(Tablename) FROM entries WHERE column_name MATCH '"apple *"'",null);然后使用光标。
发布于 2014-01-13 14:34:31
这就是我在SearchableDictionary的SearchableDictionary文件中所做的。我将一些方法代码修改为:
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;
}https://stackoverflow.com/questions/21064429
复制相似问题