Android搜索匹配2列SQL语句

Android搜索匹配2列SQL语句,android,sql,sqlite,search,Android,Sql,Sqlite,Search,我正在学习Android SearchableDictionary教程和代码,我会让一切正常工作,并理解代码。然而,就我个人而言,我无法让搜索在可搜索的sqliteDB的两列中进行。请参阅下面的评论,了解我想要实现的目标 public Cursor getWordMatches(String query, String[] columns) { //This (original code) searches your query in the KEY_WORD column, w

我正在学习Android SearchableDictionary教程和代码,我会让一切正常工作,并理解代码。然而,就我个人而言,我无法让搜索在可搜索的sqliteDB的两列中进行。请参阅下面的评论,了解我想要实现的目标

public Cursor getWordMatches(String query, String[] columns) {
        //This (original code) searches your query in the KEY_WORD column, which is the SUGGEST_COLUMN_TEXT_1 column.
        //String selection = KEY_WORD + " MATCH ?";

        // This searches your query across ALL columns of the table, not what I want because I have added additional columns to the sqlitedb table
        //String selection = FTS_VIRTUAL_TABLE + " MATCH ?";

        // This is what I want, to search my query in both the keyword and keydefinition columns, which is the 1 and 2 suggest column text
        String selection = KEY_WORD +"OR" + KEY_DEFINITION+ " MATCH ?";
        String[] selectionArgs = new String[] {query+"*"};

        return query(selection, selectionArgs, columns);

        /* This builds a query that looks like:
         *     SELECT <columns> FROM <table> WHERE <KEY_WORD> MATCH 'query*'
         * which is an FTS3 search for the query text (plus a wildcard) inside the word column.
我在那里尝试过的东西还有很多,但它们是对以下格式的微小修改:

字符串选择=关键字+或+关键字定义+匹配

字符串选择=FTS_虚拟_表+匹配“建议_文本_1:?”?或建议_text_2:?'


我还阅读了的相关章节,但对我没有帮助,因为它再次给出了在1列中搜索和使用隐藏的db命名列在所有列中搜索的示例。我需要在一条SQL语句中搜索多个列。

请参见。感谢您的回复,我确实读过了,但这对我没有帮助。我还用我的尝试更新了我的问题。在我看来,fts4只能搜索一列或所有列中的查询?我只需要一个例子,我可以在一个语句中搜索2列。