powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Полнотекстовый поиск
38 сообщений из 38, показаны все 2 страниц
Полнотекстовый поиск
    #39787115
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Fb версия 2.5
Необходимо реализовать полнотекстовый поиск.
Много данных не будет (сделать диплом и забыть). Я, отношусь к "среднячку" - хотел бы разобраться, но если кто сделает за меня - заплачу.
Смотрел по форуму, в основном используют udf и сторонние библиотеки(sphinx). У меня в рамках диплома не большой проект, а написать самому такую процедуру, не хватает знаний.
С формы приходят имя, фамилия
Есть представление, в котором:
Имя,
Фамилия,
Дата рождения
Нечёткий поиск по имени и фамилии,(рус и en).
P.s. уж извините за неправильное использование терминологии😪
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39787163
AltHasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alepawka,
Если речь идёт по "нечётком поиске", то лучше испольовать Postgres так как уже есть эти функции "в коробке".
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39787185
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alepawka,

как можно диплом на такой мифической хрени делать. Я понимаю, лет 20 назад. Но сейчас-то...
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39787197
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AltHaspAlepawka,
Если речь идёт по "нечётком поиске", то лучше испольовать Postgres так как уже есть эти функции "в коробке".
Да, но его использовать, то тогда, считай, и делать, вообще ничего не надо, - даже на курсовую не тянет.))
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39787245
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AltHasp,
Спасибо за совет, но задача стоит использовать FB) поэтому надо как то выкручиваться 😀
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790108
BorodaOleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LIKE тебя чем-то не устраивает?
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790159
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alepawka, самый простой но очень медленный способ, это что-то типа
Код: sql
1.
2.
3.
4.
5.
SELECT ...
  FROM mytable
  WHERE mytable.field CONTAINING :first_name
    AND mytable.field CONTAINING :last_name
    AND mytable.field CONTAINING :middle_name


Чтобы сделать правильно, необходимо создать справочник встречающихся слов, где каждому будет сопоставлен идентификатор, а заполняться уникальными словами этот справочник будет при парсинге контента, отбрасывая все предлоги, начинающиеся с маленькой буквы (чтобы случайно не отбросить такие фамилии как "По" или "И") и знаки препинания.
Далее, каждому документу необходимо сопоставить набор идентификаторов слов из справочника, после чего введенные в поисковую строку слова можно будет найти в справочнике слов, взять их идентификаторы и по таблице сопоставления идентификаторов слов документу найти документы, где эти слова встречаются.
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790177
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
22.03.2019 15:37, rdb_dev пишет:
> Чтобы сделать правильно, необходимо создать справочник встречающихся слов

садись.
тебе 2.

зы: ты вообще не программист.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790203
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий22.03.2019 15:37, rdb_dev пишет:
> Чтобы сделать правильно, необходимо создать справочник встречающихся слов

садись.
тебе 2.

зы: ты вообще не программист.
Ну-ка, ну-ка... Почитаем вариант иксперта. 😏
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790223
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

Толсто намекну. Твой мегапоиск не будет работать ни на чём, кроме текстов типа "мой твой не понимать".
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790316
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А поискать? Сообщение 11351770 19217105
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790468
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryrdb_dev,
Толсто намекну. Твой мегапоиск не будет работать ни на чём, кроме текстов типа "мой твой не понимать".Для диплома этого более чем достаточно. Не загонять же в БД весь словарь со склонениями существительных и временами глаголов... Кстати, по началу, все известные поисковые системы, существующие с 90-ых, именно так и работали - моя твоя "не понимать".
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790790
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Avenger__,

Уже видел вашу реализацию поиска, но у вас библиотеки на windows.
А у меня linux
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790791
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Avenger__,

А по поводу sphinx
Буду пытаться устанавливать)
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790792
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alepawka,

трудно в FPC UDF перекомпилировать? Я не про ту где со сфинксом, а ту что попроще
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790851
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.03.2019 10:07, Симонов Денис пишет:
> трудно в FPC UDF перекомпилировать? Я не про ту где со сфинксом, а ту что попроще

дык, тут программист нужен... (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790930
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devКстати, по началу, ...А раньше перфокарт и "бармалея" были штыри. Кстати, о чём это мы?
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39790969
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryКстати, о чём это мы?Мы о том, как привязать к документу список встречающихся в нём слов по справочнику этих слов. С помощью каких методов сравнения определять эти слова по поисковой строке, это уже другой вопрос.
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39791013
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

Т.е. сначала мы создадим словарь, а потом будем думать, как и зачем его применить. Ничего не перепутал?
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39791016
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery, предлагаешь хранить в базе BLOB'ы полных документов и на каждый запрос поиска целиком их перелопачивать в поисках похожих слов из заданной строки поиска? Ты реально полагаешь, что поисковые системы именно так и работают?
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39791028
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

Ничего я не предлагал. Разумные предложения были от других авторов.
А твоё предложение мне не понравилось тем, что похоже на залипуху "вдруг прокатит" для сдачи зачёта, для дипломной же работы вряд ли проканает.
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39791054
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще тут обсуждалось - триграмный индекс
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39791100
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Avenger__,

Да не по зубам ему ничего из этого, - неужели до сих пор не понятно??
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795615
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисAlepawka,

трудно в FPC UDF перекомпилировать? Я не про ту где со сфинксом, а ту что попроще

Трудно. Там Делфи.
Это надо разобраться в Делфи
И уже переписывать.
Вы не поможете мне?
Если надо, я заплачу
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795616
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alepawka,

ты пробовал? Если да, пиши какие ошибки возникли. Если нет, то сначала поставь Lazarus 2.0 и попробуй.
Что не получится, то поможем адаптировать
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795674
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
Я вроде как сделал,но
Вопрос
Я поменял функции utf8ToString на Utf8ToAnsi

Это правильно?
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795683
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alepawka,

понятия не имею. Какую именно UDF вы модифицируете? Ссылка на код, и название функции, ну или здесь пример кода под спойлером выложи
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795713
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисAlepawka,

понятия не имею. Какую именно UDF вы модифицируете? Ссылка на код, и название функции, ну или здесь пример кода под спойлером выложи

Итак, не модифицирую, скорей переписываю для работы на linux
11351770

Что именно я сделал:
Файл u_Func.pas

Удалил эту часть кода:
Код: pascale
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
uses
{$IF CompilerVersion > 22}
  Winapi.Windows;
{$ELSE}
  Windows;
{$IFEND}

function AnsiUpperCase(const S: String): String;
{$IFDEF MSWINDOWS}
var
  Len: Integer;
begin
  Len := Length(S);
  SetString(Result, PChar(S), Len);
  if Len > 0 then
    CharUpperBuff(PChar(Result), Len);
end;
{$ENDIF MSWINDOWS}
{$IFDEF POSIX}
begin
  Result := UCS4StringToUnicodeString(UCS4UpperCase(UnicodeStringToUCS4String(S)));
end;
{$ENDIF POSIX}

Посмотрел, что условие для windows, удалил
Далее, посмотрел документацию по FPC - AnsiUpperCase есть встроенная, поэтому тоже удалил.

Далее
В главном файле проекта, как уже сказал раньше, вместо utf8ToString поставил Utf8ToAnsi
(Прикрепил файл)
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795795
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alepawka,

FPC какой версии? Для облегчения миграции для начала неплохо бы врубить режим дельфи

{$IFDEF FPC}
{$MODE DELPHI}{$H+}
{$ENDIF}

и не забывать включить многопоточный менеджер памяти в список модулей

{$IFDEF unix}
cthreads,
{$ENDIF }
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795820
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
3.0.4
Спасибо) добавил код
Кстати, написал, функции работают)
Спасибо большое за помощь!)
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795833
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
Вот вопрос с кодировками
При создании функции был указан тип cstring.
В какой формат мне конвертировать данные из БД, чтоб функция работала корректно?

Допустим, есть человек в базе Иванов Иван Иванович.
Пишу запрос:
Код: sql
1.
2.
3.
Select sername || ' ' || name as name, 
"SIMILAR" ('Иванов Иван Иванович', name)
from ...


И выдает, что совпадение 89.
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795845
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alepawka,

у тебя БД в какой кодировке?
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795850
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
Столбцы в varchar
Пробовал с cast преобразовывать
Так же
Пробовал trim - тоже не помогает
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795855
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
А может сделать временную таблицу?

Сделать процедуру поиска
Данные с формы добалять, допустим, в столбец временной таблицы
И пусть он сравнивает с моей таблицей людей?
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795863
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alepawka,

я тебя про кодировку спрашиваю, а ты мне про варчары
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39795927
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
Ахах, прости, utf8
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39796016
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениси не забывать включить многопоточный менеджер памяти в список модулей

{$IFDEF unix}
cthreads,
{$ENDIF }
вдогонку...
дока (по-крайне мере, для Лазаря) еще рекомендует подключать туда же и сишный манагер памяти cmem ( тынц , тынц ), который имеет некоторые преимущества перед фрипаскалевским.
...
Рейтинг: 0 / 0
Полнотекстовый поиск
    #39796211
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Док,
Спасибо большое за информацию, все сделал)
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Полнотекстовый поиск
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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