В настоящее время я создаю базу данных, которая будет отслеживать записи компаний. Мне нужно найти МНОГИЕ (мы говорим, возможно, несколько тысяч, когда это будет завершено) имена компаний против одного столбца в таблице, в которой будут указаны названия компаний. Я в настоящее время используют следующие основные MySQL LIKE запроса (это конденсируется, ток один имеет 300+ условия разыскивается):100-1000 + Term Искать Lucene/Sphinx/Mysql
SELECT * FROM "case-file-owner" WHERE "party-name" LIKE 'Nike%' OR
"party-name" LIKE 'Lyon Group Inc.%' OR "party-name" LIKE 'Target Home%'
ORDER BY "party-name" ASC
Как вы можете видеть, это немного основной! Как бы вы сделали такой поиск с Lucene или Sphinx? Являются ли эти средства излишними для этой задачи? Хотя мне нужно искать потенциально тысячи компаний, текущая настройка только ищет таблицу, содержащую, пожалуй, 1000 записей каждый день (я запускаю запрос, который отсекает записи, которые мне не нужно искать).
Моя основная проблема связана с незначительными проблемами. Например: Company1, Inc. Company1 Inc. Company1 Inc. Company1 Incorporated. все возможные представления многих названий компаний, которые мне нужно найти.
Работает ли MATCH? Был бы такой гигантский вопрос, как это происходит навсегда с Lucene или Sphinx? Мой текущий LIKE-поиск «оптимизирован», сбрасывая любые ведущие подстановочные операторы ... но вряд ли умный!
Я не могу этого сделать. Я не контролирую ввод данных, это общедоступные записи :( – photocode
Можете ли вы создать таблицу на своем конце, которая отображает нормализованное имя в общедоступную запись и присоединяется к вашей собственной таблице при выполнении этого типа фильтрации? –
Я полагаю, Я мог бы добавить свою собственную таблицу - я перестроил их базу данных локально. Самая большая проблема, однако, - это такие умные вариации, как запятые, периоды и т. Д. Я могу создать несколько вариаций названия компании довольно легко для сохраненных запросов. Предположим, удалять эти символы будет началом.Как я могу сделать это для нескольких строк? Я предполагаю, что фактическая команда редактирования, за которой следует поиск, будет работать быстрее, чем пытаться манипулировать строкой, а затем искать снова и снова. Что касается Луцен, не будет легче? Я чувствую, что это должен быть лучший вариант. – photocode