androidsqlitefull-text-searchfts3

How to query in sqlite fts3 table using "-*"?


I have a fts3 table named tab and a lot of entries in it. When I run this query:

SELECT * FROM tab WHERE key MATCH 'an*';

I get the results like this:

an
anul
an-

But when I run this query:

SELECT * FROM tab WHERE key MATCH 'an-*';

it still results the "an" entry. The result would be like:

an
an-

How can I write my query so the result woudn't be "an", but only those entries that actually contains the character "-"?


Solution

  • According to the default tokenizer rules, - separates words, and is otherwise ignored.

    You have to search for the word an first, and check for the hyphen afterwards:

    SELECT *
    FROM tab
    WHERE key MATCH 'an'
      AND key LIKE 'an-%';