Android sqlite-Abfrage, um Spalte mit Text zu entsprechen

8

Es wird versucht, eine Abfrage zu erstellen, die eine Übereinstimmung zurückgibt, wenn die angegebene Spalte irgendwo den Text enthält. Wenn ich zum Beispiel das Wort "wirklich" weitergeben würde, würde eine Spalte mit dem Text "Dies ist eine wirklich lange Textzeile" übereinstimmen. Bisher werden meine Abfragen nur zurückgegeben, wenn sie genau übereinstimmen, sodass nur eine Spalte mit "wirklich" übereinstimmt, und das ist es.

Ich habe ein paar Wege ausprobiert, aber beide scheinen das gleiche Ergebnis zu liefern:

Erster Weg (s ist die Zeichenfolge, die ich übergebe):

%Vor%

Nächste Möglichkeit

%Vor%     
Paul 15.04.2013, 18:38
quelle

1 Antwort

26
  

Versuchen, eine Abfrage zu erstellen, die eine Übereinstimmung zurückgibt, wenn die angegebene Spalte den Text irgendwo im Inneren enthält.

Das funktioniert bei mir und es ist parametrisiert:

%Vor%

"Wirklich" ist ein eindeutig genug Wort, aber wenn Sie nach etwas wie "Eis" suchen und nicht wollen "Würfel", "Vize", "Eis", etc. müssen Sie verschiedene Muster wie verwenden : "% " + s + " %" und s + " %" .

Oder verwenden Sie eine FTS-Tabelle mit einem Tokenizer , wie Porter Stemming.

    
Sam 15.04.2013, 18:46
quelle

Tags und Links