Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Всем привет! Необходимо реализовать в fb2.5
Помогите пожалуйста!
create procedure LevenshteinDistance(@string1 varchar(4000), @string2 varchar(4000))
as
begin
    set nocount on

    if (@string1 is null) Raiserror ('Строка 1 не должна быть пустой', 16, 1);
    if (@string2 is null) Raiserror ('Строка 2 не должна быть пустой', 16, 1);

	declare @diff int
	declare @len1 int
	declare @len2 int

	set @len1 = len(@string1)
	set @len2 = len(@string2)

	declare @m table (i int, j int, val int)

	declare @i int, @j int

	set @i = 0
	while (@i <= @len1)
	begin
		delete @m where i=@i and j=0

		insert into @m (i, j, val)
		values (@i, 0, @i)
		set @i = @i + 1
	end

	set @j = 0
	while (@j <= @len2)
	begin
		delete @m where i=0 and j=@j

		insert into @m (i, j, val)
		values (0, @j, @j)
		set @j = @j + 1
	end


	set @i = 1
	while (@i <= @len1) begin
		set @j = 1
		while (@j <= @len2) begin

			if (substring(@string1, @i, 1) = substring(@string2, @j, 1))
				set @diff = 0
			else
				set @diff = 1


			declare @minval int

			select @minval = min(val)
			from (
					select isnull(val, 0) + 1 as val
					from @m
					where i = @i-1 and j = @j

					union

					select isnull(val, 0) + 1 as val
					from @m
					where i = @i and j = @j-1

					union

					select isnull(val, 0) + @diff as val
					from @m
					where i = @i-1 and j = @j-1
				) t

			delete @m where i=@i and j=@j

			insert into @m (i, j, val)
			values (@i, @j, isnull(@minval, 0))

			set @j = @j + 1
		end
		set @i = @i + 1
	end

	declare @retval int
	select @retval = isnull(val, 0)
	from @m
	where i = @len1 and j = @len2

	return @retval
end

Пытался реализовать, менял функции и т.д.
Но все безрезультатно (
18 мар 19, 12:39    [21835804]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30037

имхо, тут программист нужен (С)

Posted via ActualForum NNTP Server 1.5

18 мар 19, 12:41    [21835808]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9634
Alepawka,

проще написать UDF. На PSQL реализацию таких вещей не эффективна.
То что написано на MS SQL адский ад какой-то
18 мар 19, 12:48    [21835821]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис,
Подскажите, в каком направлении идти
Я просто только недавно начал вникать в fb
Что читать, как разработать, и т.д.
18 мар 19, 12:49    [21835823]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9634
Alepawka,

начни отсюда https://www.ibase.ru/files/firebird/Firebird_2_5_Language_Reference_RUS.pdf
18 мар 19, 12:52    [21835829]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис,
Спасибо,но это я уже читал
И не раз
Я видел, там написано про внешние функции.
Много гуглил про sphinx. Почему я его не установил? Не знаю. Просто я так и не нашел точного синтаксиса его использования в запросах на Firebird.
Вам доводилось использовать sphinx? Там, я как понял, необходимо докачивать доп файлы, чтоб работал на fb. Или как?
18 мар 19, 13:02    [21835848]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30037

забудь про этот "алгоритм", который нашел.
пиши курсач.

Posted via ActualForum NNTP Server 1.5

18 мар 19, 13:07    [21835853]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Мимопроходящий,
Так, а как писать, если алгоритм не реализован?
18 мар 19, 13:22    [21835880]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30037

если тебе нужен сфинкс, бери и пользуй сфинкс.
https://www.firebirdsql.org/en/other-downloads/
а этой портянкой говнокода тут не размахивай.

Posted via ActualForum NNTP Server 1.5

18 мар 19, 13:27    [21835890]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9634
Alepawka,

в чём суть вашего диплома? Если не чёткий поиск и есть главная задача, то читайте то, что вам препод диктовал и реализуйте по его алгоритмам. Готовые реализации, которые используются в промышленных системах тут не подойдут, иначе это не ваша работа и ценность её нулевая. А если это маленькое не обязательное условие, то поинтересуйтесь у препода что использовать, а то может оно и вообще не нужно.
18 мар 19, 13:30    [21835893]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Vlad F
Member

Откуда:
Сообщений: 816
Alepawka
Симонов Денис,
Подскажите, в каком направлении идти
Я просто только недавно начал вникать в fb
Что читать, как разработать, и т.д.

Как ты уже понял в FB для решения твоей задачи ничего вспомогательного нема.
Поэтому предлагаю поискать сначала отвлеченные математические алгоритмы нужного направления, ну, например,
на тему "SQL алгоритмы нечеткого поиска". Их там хватает. Выбери тот, который, на твой собственный взгляд,
ты способен переварить и начинай реализовывать средствами FB. И тогда, может быть, тебе в чем то здесь и помогут.
По мелочам. Да, и кстати, лично я бы реализовывал, по крайней мере на первых порах, именно через SDF, а не UDF.
Тебе ведь не скорость сейчас важна, а удобство реализации.
18 мар 19, 13:40    [21835915]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Шавлюк Евгений
Member

Откуда: Одесса
Сообщений: 475
Vlad F
именно через SDF, а не UDF

У него fb2.5
18 мар 19, 13:43    [21835916]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30037

18.03.2019 13:43, Шавлюк Евгений пишет:
> У него fb2.5

не думаю, что в ТЗ у него это "ЖОСТКО" прописано

Posted via ActualForum NNTP Server 1.5

18 мар 19, 13:46    [21835923]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Vlad F
Member

Откуда:
Сообщений: 816
Шавлюк Евгений,

У него там диплом, а не продакшн. Для успеха диплома можно и подсуетиться, имхо.))
18 мар 19, 14:20    [21835973]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Filippov Dmitry
Member

Откуда: Пенза->Москва
Сообщений: 131
Alepawka,

можно переписать и на FB.
Почём?
18 мар 19, 14:35    [21836002]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис,
Нет, это не главное, скорей второстепенное. Суть диплома - разработка приложения на lazarus + fb. Одна из задач - поиск лиц.
Т.е. из таблицы берется имя, фамилия
И проверяется по другим спискам.
Нечёткий поиск - это уже моя инициатива.
18 мар 19, 22:00    [21836630]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Vlad F,
Спасибо за помощь, посмотрю Гугл и sdf)
18 мар 19, 22:04    [21836632]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47677

Alepawka
Нечёткий поиск - это уже моя инициатива.

Инициатива наказуема. Ниасилишь.

Posted via ActualForum NNTP Server 1.5

18 мар 19, 22:08    [21836635]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1459
Dimitry Sibiryakov
Alepawka
Нечёткий поиск - это уже моя инициатива.

Инициатива наказуема. Ниасилишь.

Зависит от того как трактовать термин "нечеткий поиск" :)
19 мар 19, 06:29    [21836774]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30037

19.03.2019 6:29, fraks пишет:
> Зависит от того как трактовать термин "нечеткий поиск" :)

+500!

подозреваю, что поциент имеет в виду LIKE...
в крайнем случаем SIMILAR...

Posted via ActualForum NNTP Server 1.5

19 мар 19, 12:01    [21837121]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Мимопроходящий
19.03.2019 6:29, fraks пишет:
> Зависит от того как трактовать термин "нечеткий поиск" :)

+500!

подозреваю, что поциент имеет в виду LIKE...
в крайнем случаем SIMILAR...

Ну, допустим,в таблице будет 'Иванов',
А в списках ,'Иванив' , LIKE тут явно не найдёт
19 мар 19, 12:15    [21837146]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Filippov Dmitry,

А сколько дают с такого рода задания?
19 мар 19, 12:21    [21837155]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Filippov Dmitry
Member

Откуда: Пенза->Москва
Сообщений: 131
Alepawka,

не совсем понял вопрос, но (на всякий !) давайте обсудим в личных сообщениях.
19 мар 19, 12:59    [21837211]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30037

19.03.2019 12:15, Alepawka пишет:
> Ну, допустим,в таблице будет 'Иванов',
> А в списках ,'Иванив' , LIKE тут явно не найдёт

а если дождь во время усушки? а?! (С)

LIKE 'Иван%в'

Posted via ActualForum NNTP Server 1.5

19 мар 19, 13:12    [21837243]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 60007
> LIKE 'Иван%в'

Иванчиков!

Это ещё не считая других замен букв, умляутов и пр.

P.S. Топик не читал, но сферический сабж в вакууме
"дешевого" решения (пока) не имеет, ИИ немаэ.

Posted via ActualForum NNTP Server 1.5

19 мар 19, 13:20    [21837260]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Firebird, InterBase Ответить