У меня есть MySQL DataTable личных параметров (около 100 на человека):поиск MySQL DB с частичной точной математике
{"id":"1", "height":"182", "hair_color":"red", "eyes_color":"haze", "day_of_birth":"25"}
(формат JSON является только для простоты)
я должен быть в состоянии осуществить частичный поиска, чтобы получить, скажем, 5-1 параметров, чтобы получить результат.
QUERY: ["height":182, "hair_color":"red", "day_of_birth":"25", "skin_color":"black"]
В конце концов мне нужен список соответствующих строк с числом соответствующих параметров
LIKE: ["id":"1","matched":"2"]
и получить, скажем, "первые 100" с самым большим количеством матчей (конечно, ASAP :))
Хм ... никогда не пробовал такое отношение. Интересно. 100 if's over ~ 1000000 rows db ... может потребовать много времени ... но я попробую! –
см. Комментарий относительно Lucence ... –
Вы должны обязательно искать какой-либо другой механизм хранения. Если сохранение MySQL является обязательным, взгляните на Lucene (или Elastic Search). Если наличие реляционной базы данных является обязательным, но вы, вероятно, должны рассмотреть альтернативы MySQL, то у вас может быть успех с PostgreSQL, который предлагает поддержку различных нечетких совпадений и многомерных запросов с индексом. И я не знаю точно, но MariaDB также может иметь некоторые интересные функции в этом отношении. – jwatkins