iOS: поиск по главному слову (существительное), а не по его местоимению - PullRequest
0 голосов
/ 07 июня 2011

Я пишу приложение TableView, где люди могут искать слова на иностранном языке.На этом языке статья важна, так как в ней указывается пол слова.

Разумный пример на английском языке - «Книга».

Я хочу найти «Книга», а не «The».

Есть идеи, как лучше всего это сделать?

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

Вам нужен вторичный индекс без шумовых слов и выполните поиск по этому поводу. Есть также несколько библиотек полнотекстового поиска для iOS, или вы можете создать свою собственную версию Sqlite с включенным полнотекстовым модулем.

Также вы можете рассмотреть возможность предварительной обработки запроса, например, с помощью алгоритма, чтобы уменьшить его до корня слова, и затем выполнить поиск с использованием подстановочного знака (например, «рассмотрение» >> «рассмотреть *»

Локатья http://www.locayta.com/iOS-search-engine/locayta-search-mobile/register-for-download

Создание Sqlite с полным текстом на iOS http://longweekendmobile.com/2010/06/16/sqlite-full-text-search-for-iphone-ipadyour-own-sqlite-for-iphone-and-ipad/

1 голос
/ 07 июня 2011

Вы говорите о поиске чего-либо в базе данных, например?SQLite может быть построен с полнотекстовым поиском расширениями, которые позволяют вам искать отдельные слова в тексте.Даже без расширений FTS вы можете использовать совпадение LIKE в SQLite, чтобы найти слово во фразе, хотя расширения FTS намного быстрее и более гибкие.

Вы также можете реализовать свое собственное ключевое слово в беднякеКонтекстная (KWIC) схема - в основном просто введите каждый элемент в базе данных N раз для фразы из N слов, каждый раз поворачивая одно слово.

И существуют варианты схемы KWIC, которые работают для большого числафразы с меньшим дублированием - использование древовидной структуры для доступа к данным.При таких подходах практично осуществлять поиск без клавиатуры, просто последовательно уточняя содержимое таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...