Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Нашел алгоритм, но он на mssql / 25 сообщений из 65, страница 1 из 3
18.03.2019, 12:39
    #39787687
Alepawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Всем привет! Необходимо реализовать в fb2.5
Помогите пожалуйста!
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
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


Пытался реализовать, менял функции и т.д.
Но все безрезультатно (
...
Рейтинг: 0 / 0
18.03.2019, 12:41
    #39787689
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
имхо, тут программист нужен (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.03.2019, 12:48
    #39787695
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Alepawka,

проще написать UDF. На PSQL реализацию таких вещей не эффективна.
То что написано на MS SQL адский ад какой-то
...
Рейтинг: 0 / 0
18.03.2019, 12:49
    #39787697
Alepawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Симонов Денис,
Подскажите, в каком направлении идти
Я просто только недавно начал вникать в fb
Что читать, как разработать, и т.д.
...
Рейтинг: 0 / 0
18.03.2019, 12:52
    #39787701
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
...
Рейтинг: 0 / 0
18.03.2019, 13:02
    #39787715
Alepawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Симонов Денис,
Спасибо,но это я уже читал
И не раз
Я видел, там написано про внешние функции.
Много гуглил про sphinx. Почему я его не установил? Не знаю. Просто я так и не нашел точного синтаксиса его использования в запросах на Firebird.
Вам доводилось использовать sphinx? Там, я как понял, необходимо докачивать доп файлы, чтоб работал на fb. Или как?
...
Рейтинг: 0 / 0
18.03.2019, 13:07
    #39787718
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
забудь про этот "алгоритм", который нашел.
пиши курсач.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.03.2019, 13:22
    #39787739
Alepawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Мимопроходящий,
Так, а как писать, если алгоритм не реализован?
...
Рейтинг: 0 / 0
18.03.2019, 13:27
    #39787743
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
если тебе нужен сфинкс, бери и пользуй сфинкс.
https://www.firebirdsql.org/en/other-downloads/
а этой портянкой говнокода тут не размахивай.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.03.2019, 13:30
    #39787745
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Alepawka,

в чём суть вашего диплома? Если не чёткий поиск и есть главная задача, то читайте то, что вам препод диктовал и реализуйте по его алгоритмам. Готовые реализации, которые используются в промышленных системах тут не подойдут, иначе это не ваша работа и ценность её нулевая. А если это маленькое не обязательное условие, то поинтересуйтесь у препода что использовать, а то может оно и вообще не нужно.
...
Рейтинг: 0 / 0
18.03.2019, 13:40
    #39787754
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
AlepawkaСимонов Денис,
Подскажите, в каком направлении идти
Я просто только недавно начал вникать в fb
Что читать, как разработать, и т.д.
Как ты уже понял в FB для решения твоей задачи ничего вспомогательного нема.
Поэтому предлагаю поискать сначала отвлеченные математические алгоритмы нужного направления, ну, например,
на тему "SQL алгоритмы нечеткого поиска". Их там хватает. Выбери тот, который, на твой собственный взгляд,
ты способен переварить и начинай реализовывать средствами FB. И тогда, может быть, тебе в чем то здесь и помогут.
По мелочам. Да, и кстати, лично я бы реализовывал, по крайней мере на первых порах, именно через SDF, а не UDF.
Тебе ведь не скорость сейчас важна, а удобство реализации.
...
Рейтинг: 0 / 0
18.03.2019, 13:43
    #39787755
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Vlad Fименно через SDF, а не UDF
У него fb2.5
...
Рейтинг: 0 / 0
18.03.2019, 13:46
    #39787758
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
18.03.2019 13:43, Шавлюк Евгений пишет:
> У него fb2.5

не думаю, что в ТЗ у него это "ЖОСТКО" прописано
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.03.2019, 14:20
    #39787781
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Шавлюк Евгений,

У него там диплом, а не продакшн. Для успеха диплома можно и подсуетиться, имхо.))
...
Рейтинг: 0 / 0
18.03.2019, 14:35
    #39787801
Filippov Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Alepawka,

можно переписать и на FB.
Почём?
...
Рейтинг: 0 / 0
18.03.2019, 22:00
    #39788098
Alepawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Симонов Денис,
Нет, это не главное, скорей второстепенное. Суть диплома - разработка приложения на lazarus + fb. Одна из задач - поиск лиц.
Т.е. из таблицы берется имя, фамилия
И проверяется по другим спискам.
Нечёткий поиск - это уже моя инициатива.
...
Рейтинг: 0 / 0
18.03.2019, 22:04
    #39788100
Alepawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Vlad F,
Спасибо за помощь, посмотрю Гугл и sdf)
...
Рейтинг: 0 / 0
18.03.2019, 22:08
    #39788103
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
AlepawkaНечёткий поиск - это уже моя инициатива.

Инициатива наказуема. Ниасилишь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.03.2019, 06:29
    #39788144
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Dimitry SibiryakovAlepawkaНечёткий поиск - это уже моя инициатива.

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

Зависит от того как трактовать термин "нечеткий поиск" :)
...
Рейтинг: 0 / 0
19.03.2019, 12:01
    #39788305
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
19.03.2019 6:29, fraks пишет:
> Зависит от того как трактовать термин "нечеткий поиск" :)

+500!

подозреваю, что поциент имеет в виду LIKE...
в крайнем случаем SIMILAR...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.03.2019, 12:15
    #39788321
Alepawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Мимопроходящий19.03.2019 6:29, fraks пишет:
> Зависит от того как трактовать термин "нечеткий поиск" :)

+500!

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

Ну, допустим,в таблице будет 'Иванов',
А в списках ,'Иванив' , LIKE тут явно не найдёт
...
Рейтинг: 0 / 0
19.03.2019, 12:21
    #39788326
Alepawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Filippov Dmitry,

А сколько дают с такого рода задания?
...
Рейтинг: 0 / 0
19.03.2019, 12:59
    #39788360
Filippov Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
Alepawka,

не совсем понял вопрос, но (на всякий !) давайте обсудим в личных сообщениях.
...
Рейтинг: 0 / 0
19.03.2019, 13:12
    #39788373
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
19.03.2019 12:15, Alepawka пишет:
> Ну, допустим,в таблице будет 'Иванов',
> А в списках ,'Иванив' , LIKE тут явно не найдёт

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

Код: sql
1.
LIKE 'Иван%в'


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.03.2019, 13:20
    #39788382
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нашел алгоритм, но он на mssql
> LIKE 'Иван%в'

Иванчиков!

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

P.S. Топик не читал, но сферический сабж в вакууме
"дешевого" решения (пока) не имеет, ИИ немаэ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Нашел алгоритм, но он на mssql / 25 сообщений из 65, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]