Я чувствую себя немного новичка отправляю это, но все равно:Лучший способ для сравнения сложных строк в SQL или .NET
У меня есть большое количество деталей штока, 3000-5000, которые имеют сложные названия, на основе от того, кто вошел в пункты более в течение 16 лет, и пример названия:
"Food, Dog, Pal Meaty Bites chunks 8kg bag"
Другой, связанный элемент называется:
"DOG FOOD: Meaty Bites (Pal) 22kg bag"
проблема заключается в том, что у меня есть список элементов из ряда поставщикам, с обновленными ценами, которые мне нужно сопоставить с нашим существующим списком акций. В первый раз, когда я получаю список, я хочу попытаться выполнить поиск «ближайшего совпадения» и представить пользователю список наших текущих имен позиций, которые могут совпадать с именем товарного запаса поставщиков. Затем пользователь выберет правильный SKU, и приложение импортирует элемент поставщика и свяжется с нашей столовой таблицей PK.
Название от поставщика также будет меняться. Пример:
"Pal Meaty Bites Chunks 8kg"
Я могу выполнить матч в SQL или .NET, который вы когда-либо рекомендовали. Я хочу представить пользователю как можно меньше элементов, основываясь на наибольшем числе ключевых слов. Мои идеи до сих пор таковы:
В .Net: перерыв в массив и поиск по каждому ключевому слову для каждого элемента (медленный) В SQL: используйте полный текстовый индекс и разделите его на ключевые слова, используя возвращаемый список «ИЛИ» на ранг с обрезанием
Это должен быть общий сценарий, я просто не уверен в том, как это сделать. Спасибо за ваш вклад!
Редактировать: Добавлено несколько контекстов: У нас есть таблица SKU, которая содержит около 20 полей, включая StockKeepingUnitID, которая является уникальной идентификацией PK (int identity). Продукты поставщиков втягиваются в таблицу под названием StockOrderUnit, которая имеет FK of SupplierID и StockKeepingUnitID, и имеет поле под названием SupplierCode (varchar), которое содержит уникальный код поставщиков для этой позиции запаса. Проблема заключается в том, что многие поставщики отправляют нам прайс-листы, и пользователь может сопоставить уже имеющиеся элементы поставщика (которые неизвестны на данный момент) уже существующим SKU в БД. После их выбора записи объединяются.
Какая версия SQL Server? Если SQL 2008 полностью проиндексированы текстом слова довольно легко доступны для запроса. –