это мой код, чтобы создать таблицуандроид матч SQLite не возвращает ничего
db.execSQL("CREATE VIRTUAL TABLE [videorecipes] USING FTS3 (" + "[recipeID] TEXT, " + "[recipeName] TEXT, " + "[video] TEXT, " + "[thumbs"] TEXT, " + "[ownerID"] TEXT, " + "[chefID"] TEXT, ");");
FTS3 теперь, если я опрошен его, используя что-то вроде этого
Cursor c = sqlDatabase.rawQuery("select docid as _id, recipeID, recipeName, thumbs from videorecipes where ownerID = ? AND chefID = ?", new String[] { ownerID, chefID });
это работает, я получил возвращаемые данные, но когда я попытался найти полный текст, как этот
Cursor c = sqlDatabase.rawQuery("select docid as _id, recipeID, recipeName, thumbs from videorecipes where recipeName MATCH ? AND ownerID = ? and chefID = ?, new String[] { searchRecipeName, ownerID, chefID });
ничего не возвращает. Я даже не знаю, как вывести какую-либо ошибку из sql-ошибки, если таковая имеется. кстати вот как я назвал адаптер
mCursor = dbAdapter.searchRecipe(searchString);
for(mCursor.moveToFirst(); mCursor.moveToNext(); mCursor.isAfterLast()) {
alRecipeID.add(mCursor.getString(1));
}
Я сделал полный поиск текста неправильно?
примечание: адаптер выше возвращает данные, если я не использовал запрос 'match' для полнотекстового поиска.
ваш для цикла является чуть чуть сломана, я предполагаю, что вы имели в виду 'для (mCursor.moveToFirst(); mCursor.isAfterLast(); mCursor.moveToNext())'. Вы можете выразить это более кратко как 'while (mCursor.moveToNext()) btw. – Jens
@ Android, uh .. [* no *, * no * раз * десять *] (http://www.sqlite.org/lang_createvtab.html). – Jens