Ich habe bereits integrated search based on the official Android documentation und Ich verwende die folgenden SQLite-Schema und Abfrage:Wie implementiert man Fuzzy-Suche mit SQLite FTS3?
CREATE VIRTUAL TABLE Search USING FTS3 (
_id,
name,
location
);
select * from Search where name MATCH ?
-- where ? is the user typed exact "query"
-- or if it doesn't have spaces or stars I append a star to search prefix: "query*"
Ich frage mich, wie kann ich es verlängern?Folgendes zu ermöglichen:
sagen, dass ich einige Elemente mit dem Namen:
- My Fancy Artikel
- My Secret Artikel
- Artikel # 1
- Ihre Fancy Artikel
Wenn der Benutzer gibt blah
in das Suchfeld ein, das die Suchergebnisse anzeigen würden:
my
- Mein Fancy Artikel
- Mein Geheimnis Artikel
mfi
- M y F ancy I tem
fan item
,fanit
,fit
- Mein Fan cy Es em
- Ihre Fan cy Es em
it
,item
,im
,itm
- My Fancy I te m
- My Secret I te m
- I te m # 1
- Ihre Fancy I tem
Die Ergebnisse sollten basierend auf eingestuft werden, wie gut das Spiel ist, wenn beispielsweise die Buchstaben weiter sind weg sollten sie niedriger als eine exakte Übereinstimmung, wie für mfi
: "My Fancy Item" sollte den letzten Rang und "MFI-Dings" sollte den ersten Rang (wenn es einen solchen Artikel).
Hinweis: Mein min SDK ist API-Ebene 10, die means it has to work SQLite 3.6.22.
Eine ähnliche Funktionalität kann meist in IDEs finden:
- Eclipse-: Suche Open Type und Open Resource
- IntelliJ IDEA Navigate to *
- Sublime Text Go to anything
Es gibt keine Möglichkeit, die unscharfe Suche zu implementieren. Ihre Anforderungen sind viel zu vage, um eine richtige Antwort zu finden. – wvdz
'* l * i * k * e * t * h * i * s *' aber ich mache mir Sorgen über die Effizienz dieser Lösung – Selvin
@popovitsj Benutzer gibt alles und wenn es mit einem Teil des Namens übereinstimmt zeigt es die Ergebnis. – TWiStErRob