Entschuldigung für die verallgemeinerte Frage ... Ich habe lange gesucht und nichts gefunden, was ich noch gebrauchen kann. Ich würde wirklich alle Hinweise zu schätzen wissen!
Ich baue eine Referenz-App, die mehrere Lehrbücher im Klartextformat enthalten wird. Ich möchte, dass der Benutzer eine Suche durchführen und eine Tabelle mit einer Ergebnisliste abrufen kann. Ich habe einen funktionierenden Prototyp, aber die Suchlogik, die ich geschrieben habe, ist nicht so schlau und es war die Hölle, die versucht, es besser zu machen.
Das ist offensichtlich ein ziemlich häufiges Problem, also suche ich nach einem Werkzeug, das ich an die Aufgabe anpassen könnte. Bisher habe ich Lucene ( Ссылка ) und Locayta ( Ссылка )
Lucene scheint zuletzt für iOS 2 aktualisiert worden zu sein ... Ich weiß nicht einmal, ob ich in der Lage sein werde, es selbst zu überarbeiten. Vielleicht.
Locayta würde wahrscheinlich großartig funktionieren, aber eine kommerzielle Lizenz ist $ 1.000 und ich werde das mit dieser App vielleicht nicht so schnell wiedergutmachen, da es eine Nische ist.
Danke!
Wir sind auf dieselbe Situation gestoßen, in der ich arbeite, und müssen mich noch für eine Lösung entscheiden. Locayta scheint vielversprechend zu sein, aber abgesehen davon habe ich auch in SQLites FTS3 / FTS4 nachgesehen.
Das einzige Problem schien das Fehlen einer Möglichkeit, Teilwörter zu vergleichen. Es ist einfach, nach Feldern zu suchen, die ganze Wörter enthalten (z. B. "Papier" entspricht "Druckerpapier", "Papierstanze" und "Skizzenpapier") oder Wörter, die mit etwas beginnen (z. B. "bi *" entspricht "Bindemittel") ", und" Fahrrad "), aber es gibt keine eingebaute Möglichkeit, einem Suffix zu entsprechen.
Wenn Sie diese Funktionalität nicht benötigen, funktioniert möglicherweise FTS3 / FTS4.
Ich sehe, dass Sie im Follow-up erwähnt haben, dass Ihr SQLite FTS3 () nicht erkannt hat, und ich hatte das gleiche Problem zuerst.
Offenbar ist es nicht standardmäßig in der iOS-Version enthalten, sondern Sie müssen die SQLite3-Verschmelzung herunterladen und manuell in das Projekt einbinden. Wie in zu finden, ist FTS im iOS-Build von SQLite?
Beachten Sie auch, dass die Variable SQLITE_ENABLE_FTS3 standardmäßig nicht aktiviert ist. Sie müssen sie nur zur Konfiguration hinzufügen, wie in Ссылка beschrieben
Hoffe, das hilft.
Wenn Sie einfachen C-Code in iOS Objective-C übersetzen können, dann Apache Lucy (ein loser "C" -Port von Lucene) könnte einen Blick wert sein.
Tags und Links ios xcode full-text-search