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

Откуда: Рязань
Сообщений: 9631
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

Откуда: Рязань
Сообщений: 9631
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

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

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

Откуда:
Сообщений: 815
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

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

У него там диплом, а не продакшн. Для успеха диплома можно и подсуетиться, имхо.))
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

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

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]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9631
Гаджимурадов Рустам,

+100500. Но прикручивать сфинкса в диплом считаю перебором.
19 мар 19, 13:25    [21837269]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Мимопроходящий
Member

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

19.03.2019 13:25, Симонов Денис пишет:
> Но прикручивать сфинкса в диплом считаю перебором.

+500
не нужно делать то что ненужно (С)

Posted via ActualForum NNTP Server 1.5

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

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

Симонов Денис
Но прикручивать сфинкса в диплом считаю перебором.
С другой стороны нейросеть, обученная на распознавание нечёткого соответствия -
вполне дипломный размерчик. Или это уже кандидатская?..

Posted via ActualForum NNTP Server 1.5

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

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

магистерская!
тьфу, мля

Posted via ActualForum NNTP Server 1.5

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

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

да дело то не в размере диплома, а в том что это не соответствие теме. Зачем делать то чего от тебя не требуют.
Лучше бы ТС сосредоточился на основной задаче своего диплома, вместо копания в мелочах, которые нужны только в продакшене.
Препод не оценит всё равно.
19 мар 19, 13:44    [21837298]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 6212
Может кому понадобится - вычисление расстояния Левенштейна для строк длиной до 1024 символов. Регистронезависимо. FB 2.5. Сильно не гонял, но вроде работает.

+
CREATE GLOBAL TEMPORARY TABLE GTT$LVN (
    ID        INTEGER,
    LVNVALUE  INTEGER
) ON COMMIT DELETE ROWS;

CREATE OR ALTER PROCEDURE LVNMIN3 (
    A INTEGER,
    B INTEGER,
    C INTEGER)
RETURNS (
    AMIN INTEGER)
AS
begin
  amin=a;
  if (b<amin) then amin=b;
  if (c<amin) then amin=c;
  suspend;
end

CREATE OR ALTER PROCEDURE LVNDIST (
    S VARCHAR(1024),
    T VARCHAR(1024))
RETURNS (
    DIST INTEGER)
AS
declare variable i integer;
declare variable j integer;
declare variable m integer;
declare variable n integer;
declare variable cost integer;
declare variable flip smallint;
declare variable cuthalf integer;
declare variable b1 integer;
declare variable b2 integer;
declare variable b3 integer;
begin
  s=upper(s);
  t=upper(t);

  cuthalf=2048;
  i=0;
  while (i<=2048) do
    begin
       insert into gtt$lvn(id,lvnvalue) values (:i,0);
       i=i+1;
    end

  cuthalf=1024;

  s=substring(s from 1 for cuthalf-1);
  t=substring(t from 1 for cuthalf-1);
  m=char_length(s);
  n=char_length(t);

  if (m=0) then dist=n;
  else
  if (n=0) then dist=m;
  else
     begin
       flip=0; -- false;
       i=0;
       while (i<=n) do
         begin
           update gtt$lvn set lvnvalue=:i where id=:i;
           i=i+1;
         end

       i=1;
       while (i<=m) do
          begin
            if (flip=1) then
               update gtt$lvn set lvnvalue=:i where id=0;
            else
               update gtt$lvn set lvnvalue=:i where id=:cuthalf;

            j=1;
            while (j<=n) do
               begin
                 if (substring(s from :i for 1)=substring(t from :i for 1)) then cost=0;
                 else cost=1;

                 if (flip=1) then
                     begin
                        select gtt$lvn.lvnvalue from gtt$lvn where gtt$lvn.id=:cuthalf+:j into :b1;
                        select gtt$lvn.lvnvalue from gtt$lvn where gtt$lvn.id=:j-1 into :b2;
                        select gtt$lvn.lvnvalue from gtt$lvn where gtt$lvn.id=:cuthalf+:j-1 into :b3;

                        select lvnmin3.amin from lvnmin3(:b1+1,:b2+1,:b3+:cost) into :b1;

                        update gtt$lvn set lvnvalue=:b1 where id=:j;
                     end
                 else begin
                        select gtt$lvn.lvnvalue from gtt$lvn where gtt$lvn.id=:j into :b1;
                        select gtt$lvn.lvnvalue from gtt$lvn where gtt$lvn.id=:cuthalf+:j-1 into :b2;
                        select gtt$lvn.lvnvalue from gtt$lvn where gtt$lvn.id=:j-1 into :b3;

                        select lvnmin3.amin from lvnmin3(:b1+1,:b2+1,:b3+:cost) into :b1;

                        update gtt$lvn set lvnvalue=:b1 where id=:cuthalf+:j;
                      end

                j=j+1;
              end

        if (flip=1) then flip=0;
        else flip=1;

        i=i+1;
     end

       if (flip=1) then
          select gtt$lvn.lvnvalue from gtt$lvn where id=:cuthalf+:n into :dist;
       else
          select gtt$lvn.lvnvalue from gtt$lvn where id=:n into :dist;

    end
  suspend;
end
19 мар 19, 14:30    [21837363]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Мимопроходящий,
Простите, признаю свою ошибку, не компетентен в этом вопросе, и делаю поспешные выводы.
Но как быть, если различия в 2 буквы, находящихся в разных местах слова?
Проходить по каждой букве и добавлять '%'?
19 мар 19, 14:34    [21837374]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Filippov Dmitry,
А не подскажите, есть ли тут личные сообщения? Или вы хотите перейти в другую платформу(telegram, vk и до)?
19 мар 19, 14:36    [21837376]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
DarkMaster,
Спасибо большое, надеюсь это именно то, что я искал🤗
19 мар 19, 14:39    [21837378]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
DarkMaster,
Почитал я теорию, написал этот запрос. Не работает. А вы где его взяли? Просто хотел почитать источник, да и попытаться сделать его правильным
21 мар 19, 11:06    [21839301]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 6212
Alepawka,

Тупо взял и перевел дельфийский код отсюда:

https://ru.wikibooks.org/wiki/Реализации_алгоритмов/Расстояние_Левенштейна
21 мар 19, 12:27    [21839430]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Симонов Денис
Member

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

напиши UDF. Это не долго, зато не нужно будет всякой ереси с временными таблицами
21 мар 19, 12:35    [21839438]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 6212
Симонов Денис,

Если бы были массивы и обращение к определенному символу в строке - ереси бы не было :)
21 мар 19, 13:00    [21839476]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Мимопроходящий
Member

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

21.03.2019 13:00, DarkMaster пишет:
> Если бы были массивы и обращение к определенному символу в строке - ереси бы не было :)

offtop: а массивы так и не имплементировали в PSQL ?

Posted via ActualForum NNTP Server 1.5

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

Откуда: Рязань
Сообщений: 9631
Мимопроходящий,

нет. С учётом что массивы сейчас в нутрях есть BLOB, не очень то и хотелось
21 мар 19, 14:20    [21839591]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Мимопроходящий
Member

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

21.03.2019 14:20, Симонов Денис пишет:
> нет. С учётом что массивы сейчас в нутрях есть BLOB, не очень то и хотелось

Ок.
ну да и хрен с ними.

Posted via ActualForum NNTP Server 1.5

21 мар 19, 14:28    [21839610]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Коваленко Дмитрий
Member

Откуда: Липецк
Сообщений: 541
Мимопроходящий
21.03.2019 14:20, Симонов Денис пишет:
> нет. С учётом что массивы сейчас в нутрях есть BLOB, не очень то и хотелось

Ок.
ну да и хрен с ними.


Да не ...
21 мар 19, 15:09    [21839705]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Мимопроходящий
Member

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

21.03.2019 15:09, Коваленко Дмитрий пишет:
> Да не ...

предлагаешь вшить провайдер с поддержкой массивов внутрь PSQL? ;)

Posted via ActualForum NNTP Server 1.5

21 мар 19, 15:39    [21839750]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Коваленко Дмитрий
Member

Откуда: Липецк
Сообщений: 541
Мимопроходящий
21.03.2019 15:09, Коваленко Дмитрий пишет:
> Да не ...

предлагаешь вшить провайдер с поддержкой массивов внутрь PSQL? ;)


Не, предлагаю починить/доработать и заюзать в полнотекстовом поиске.

Как раз тянет на серьезную дипломную работу.
21 мар 19, 16:22    [21839824]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9631
Коваленко Дмитрий,

после этого можно сразу в разработчики ядра Firebird просится
21 мар 19, 16:27    [21839830]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис,
Я так и сделал. Теперь мучаюсь с подключением udf. Писал функцию в lazarus. Библиотеку создал и закинул в udf/. Создаю функцию, пытаюсь использовать, а он не хочет. Хотя в rdb$function есть. Как быть?
21 мар 19, 17:41    [21839930]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Симонов Денис
Member

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

отсюда не видно что у тебя не фурычит. Текст ошибки где?
21 мар 19, 17:47    [21839936]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис,

 select search ('прив', 'прев') from rdb$dabase


Ошибка:
SQL error code -804
Function unknown
SEARCH
21 мар 19, 17:57    [21839957]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

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

К сообщению приложен файл. Размер - 129Kb
21 мар 19, 17:58    [21839960]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Мимопроходящий
Member

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

21.03.2019 17:58, Alepawka пишет:
> Вот



ты телефоном шо ле фоткал?!!

Posted via ActualForum NNTP Server 1.5

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

Откуда:
Сообщений: 40
Мимопроходящий,
Именно)
21 мар 19, 18:50    [21840020]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Симонов Денис
Member

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

DDL скрипт объявления функции давай
21 мар 19, 19:48    [21840100]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Vlad F
Member

Откуда:
Сообщений: 815
Симонов Денис
напиши UDF. Это не долго, зато не нужно будет всякой ереси с временными таблицами

Парни, вы чудаки. У него уже SDF ничего не выходит, но вместо того, чтобы распросить подробности/наставить на путь,
вы запускаете его по еще более тернистой тропе с UDF, где сразу ожидаемо появились проблемы с подключением и
всеми вытекающими. И это только начало имхо, один его, неизвестно где нарытый турбоберд о многом уже говорит.
21 мар 19, 20:02    [21840118]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Vlad F,
Наставь пожалуйста на путь истинный, буду очень благодарен 😊
21 мар 19, 22:44    [21840201]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Vlad F
Member

Откуда:
Сообщений: 815
Alepawka,

Я что похож на попугая? Давал тебе уже прямой совет и ты тогда с ним, вроде, согласился. Что с предложенным путем теперь не так?
21 мар 19, 23:11    [21840213]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
WildSery
Member

Откуда: да, оттуда.
Сообщений: 15860
Alepawka
Именно)
Ну фу. Надо было видео снимать!
22 мар 19, 09:40    [21840355]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
LocksmithPC
Member

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


Для "Нечёткий поиск" может хватит SoundEx?
22 мар 19, 10:04    [21840381]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Vlad F,
Все, помню помню.. вот про sdf
Я в руководстве fb2.5 не нашел. Это ведь server define function?
22 мар 19, 10:11    [21840387]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Симонов Денис
Member

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

функции на PSQL можно писать начиная с 3.0
22 мар 19, 10:17    [21840398]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис,
Так, объявил я свою udf так(создал ещё одну, вдруг бы заработало)
DECLARE EXTERNAL FUNCTION "TextSearch"
  varchar (100),
  varchar (100)
RETURNS INT
ENTRY_POINT 'Levenshtein'
MODULE_NAME 'libtextsearch'

libtextsearch.so лежит в UDF/

Код библиотеки:

library TextSearch;

{$mode objfpc}{$H+}

uses classes
function levenshtein(ссылка ниже)

код функции отсюда
И в конце библиотеки добавил

exports
levenshtein name 'Levenshtein';

Все ли я правильно сделал?
22 мар 19, 11:24    [21840483]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Hawkmoon
Member

Откуда:
Сообщений: 709
Триграмный поиск на PostgreSQL вам в помощь.

Если не завязано на платформу - переходить на PG. Те же яйца, только сбоку.
Если завязано - смотреть, как триграмы реализованы, и думать.
22 мар 19, 12:06    [21840534]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Vlad F
Member

Откуда:
Сообщений: 815
Hawkmoon,

Да какой там там PG, когда клиент даже с двушечки на троечку не может перейти.))
22 мар 19, 12:23    [21840563]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Dimitry Sibiryakov
Member

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

Alepawka
Все ли я правильно сделал?

Нет. Ты осознанно поставил кавычки вокруг имени функции? Зачем?

Posted via ActualForum NNTP Server 1.5

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

Откуда:
Сообщений: 40
Vlad F,
А переход сильно затратный?
22 мар 19, 14:30    [21840814]     Ответить | Цитировать Сообщить модератору
 Re: Нашел алгоритм, но он на mssql  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Dimitry Sibiryakov,
Ого, не знаю, скорее всего неосознанно.
22 мар 19, 14:31    [21840815]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / Firebird, InterBase Ответить