Как отсортировать мой NSFetchedResultsController с упорядоченным набором, связанным с сущностью?

То, что вы хотите сделать, называется нечетким поиском. Вы можете использовать функцию SOUNDEX в MySQL, зарегистрированную здесь:

http://dev.mysql.com/doc/refman/5.7/ru/string-functions.html#function_soundex

Запрос будет выглядеть так:

SELECT * FROM dictionary, где SOUNDEX (word) = SOUNDEX (: yourSearchTerm)

... где ваш поисковый запрос связан с: значением параметра yourSearchTerm.

Следующим шагом будет попытка реализовать и использовать функцию Levenshtein в MySQL. Один из них описан здесь:

http://www.artfulsoftware.com/infotree/qrytip.php?id=552

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

blockquote>

Вы также можете рассмотреть возможность поиска базы данных, предназначенные для полного поиска текста, такие как Elastic Search, который обеспечивает это изначально:

https://www.elastic.co/guide/en/elasticsearch/reference/current/query -dsl-нечеткой query.html

0
задан BigBoy1337 15 January 2019 в 17:45
поделиться

1 ответ

Вы должны денормализовать данные. Добавить поле в Tag для dateLastUsed и отсортировать по нему. Обновите это, когда сообщение помечено. В зависимости от требований к вашему продукту вам также может потребоваться обновить его, когда тег будет удален из публикации. В этом случае вам нужно будет просмотреть все сообщения тега и назначить dateLastUsed самых последних из этих сообщений.

Также вы сказали: «... для каждого извлеченного тега выполните дополнительное извлечение его сообщений». Вы НИКОГДА не должны получать сообщения тега или теги сообщения, но ВСЕГДА используйте связь. Отношения на порядки быстрее.

0
ответ дан Jon Rose 15 January 2019 в 17:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: