Как правильно организовать поиск в SQlite

322
09 марта 2017, 22:20

База данных состоит из 5 таблиц, первые три содержат данные различного рода, а так же специальные метки, по которым их можно найти.

Таблицы 1 - 3
_id | Name |...| metka1 | metka2 | metka3

Поля metka1, metka2, metka3 заполняются следующим образом - введенная фраза пользователя разбивается по отдельным словам и заносится в соответствующие порядковому номеру ячейки (но не более 3х слов).

Таблица 4
_id | metka

В данную таблицу заносятся все метки. Предварительно проверяю есть ли вводимая метка в базе, если нет, то добавляю новую строку.

Таблица 5
_id | ssilka_tabl | id_stroki | id_metki

Пятая таблица содержит ссылки на данные первых трех таблиц по индексам метки.

А теперь к выполнению поиска.

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

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

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

Как выявить что совпали данные двух разных таблиц, причем в строке запроса пользователя метки не накладываются друг на друга. И так же как поступать, если совпали не все 3 метки, а часть из них.

READ ALSO
Генератор текстовых отчётов [требует правки]

Генератор текстовых отчётов [требует правки]

ПриветКто может помочь разобраться в тестовом задании

436
Удаление кнопки с панели с помощью ActionListner

Удаление кнопки с панели с помощью ActionListner

Как сделать так, чтобы кнопка по нажатию исчезала? Предполагаю, что это как-то связано со слушателем, но как конкретно удалить кнопку (или...

333
RSA в Java__________________

RSA в Java__________________

У меня имеется, например, сгенерированный publicKeyЯ с помощью метода

358
Проблема отправки данных из java сервера к websocket клиенту на javascript

Проблема отправки данных из java сервера к websocket клиенту на javascript

Всем привет! У меня проблема, уже два дня копаюсь, но так и не решилЕсть сервер на джаве, и есть клиент на скрипте

380