Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 21.06.2007
Сообщений: 654
1

Как реализовать полнотекстовую систему поиска по сайту?

26.08.2007, 15:38. Показов 1367. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как реализовать полнотекстовую систему поиска по сайту? Подскажите, может быть есть готовые программы?

Заранее благодарен, Дима.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.08.2007, 15:38
Ответы с готовыми решениями:

Как реализовать систему поиска?
У меня есть код поисковой формы, украшенного через css: <input placeholder="Найти!"...

Реализовать систему поиска
Надо написать функцию для нахождения информации о людях чье имя начинается на "ф" ну или...

Реализовать систему поиска И и ИЛИ по базе данных
Есть следующая задача, не знаю как к ней подступиться. Дано: кей,текст текст текст... порядка...

Как подключить к сайту платёжную систему
Как подключить к сайту платёжную систему, чтобы в том числе можно было расплачиваться по карте...

2
angel
27.08.2007, 08:16 2
Всем ХАЙ !
Ну с одной стороны - все просто:
1. Напиши паучка, который обойдет все твои странички, и сложит их в базу.
2. Просто потом ищи по базе - а-ля select

Но, блин, вот если вопрос морфологии тебя волнует и ты хочешь действительно полнотекстовый поиск - то капец... работы дофига :-)
Sergik
27.08.2007, 12:30 3
если есть index server, то лучше с ним, а так есть готовый пример (ищет в бд и по файлам), на www.exposokol.ru/search я такой делал, надо только обработку ошибок добавить:
<%
function CheckFile(filnam)
if Right(filnam,5)='.html' or Right(filnam,4)='.htm' or Right(filnam,4)='.stm' then CheckFile=true else CheckFile=false
end function
'Вложенность папок до второго уровня
function FilesName(folder)
dim fn_tmp(1000)
dim fn
i=0
set fs=CreateObject('Scripting.FileSystemObject')
'корневые файлы
set lfiles = fs.GetFolder(folder).files
for each f in lfiles
if CheckFile(f.name) then
i=i+1
fn_tmp(i)=f.path
end if
next
set lfolders=fs.GetFolder(folder).SubFolders
For Each f in lfolders
'папки, в которых не надо искать
if f.name<>'admin' and f.name<>'eng' and f.name<>'images' and f.name<>'inc' and f.name<>'_source' and f.name<>'scripts' and f.name<>'search' and f.name<>'user_images' then
Set lfiles =fs.GetFolder(f.path).SubFolders
For Each subf in lfiles
'файлы в каталогах второго порядка
Set fc =fs.GetFolder(subf.path).Files
For Each ff in fc
if CheckFile(ff.name) then
i=i+1
fn_tmp(i)=ff.path
end if
Next
Next
Set lfiles =fs.GetFolder(f.path).Files
For Each subf in lfiles
if CheckFile(subf.name) then
i=i+1
fn_tmp(i)=subf.path
end if
Next
end if
Next
redim fn(i)
for j=0 to i
fn(j)=fn_tmp(j)
next
FilesName=fn
end function
function no_tag2(contents)
Dim regEx2
Set regEx2 = New RegExp
regEx2.IgnoreCase = True
regEx2.Global = True
regEx2.Pattern = '<'&'%[^%]*%'&'>'
contents = regEx2.Replace(contents, '')
regEx2.Pattern = '<[^>]*>'
contents = regEx2.Replace(contents, '')
set regEx2=nothing
no_tag2=contents
end function
'возвращает виртуальный путь с первым слэшем
function real_path_to_virtual(fName)
s=replace(mid(fName,Len(Server.MapPath(' '))+1,Len(fName)-Len(Server.MapPath(' '))),' ','/')
real_path_to_virtual=s
end function
'возвращает название файла, если тег <title> написан маленькими буквами
function get_file_title(sss)
buff=sss
if InStr(1,buff,'<title>')=0 or InStr(1,buff,'</title>')=0 then
get_file_title=''
else
buff=mid(buff,Instr(1,buff,'<title>')+Len('<title>'), Instr(1,buff,'</title>')-Instr(1,buff,'<title>')-Len('<title>'))
get_file_title=buff
end if
end function
function get_file_description(buff)
fd=buff
if InStr(1,buff,'<meta name=''Description'' content=''')=0 then
get_file_description=''
else
fd=mid(fd,Instr(1,fd,'<meta name=''Description'' content=''')+Len('<meta name=''Description'' content='''), Instr(InStr(1,fd,'<meta name=''Description'' content=''')+Len('<meta name=''Description'' content='''),fd,'''>')-Instr(1,fd,'<meta name=''Description'' content=''')-Len('<meta name=''Description'' bject('Scripting.FileSystemObject')
dim result(1000,3)
jj=0
for iCount=1 to UBound(files)
Set fil = fls.OpenTextFile(files(iCount))
content=fil.readall
fil.close
title=get_file_title(content)
source=no_tag2(content)
set fil=nothing
Set Matches = regEx.Execute(source)
if Matches.count>0 then
jj=jj+1
result(jj,3)=Matches.count
result(jj,1)=real_path_to_virtual(files(iCount))
result(jj,2)=title
end if
next%>

Найдено документов: <strong><%=jj%></strong>

<% rec=10
start=(page-1)*rec+1
ends=start+rec-1
if start>jj then start=jj
if ends>jj then ends=jj
if jj<>0 then%>
Показаны: с <%=start%> по <%=ends%>

<% end if%>


<% for i=jj to 2 step -1
for j=i-1 to 1 step -1
if result(i,3)>result(j,3) then
temp=result(i,3)
result(i,3)=result(j,3)
result(j,3)=temp
temp=result(i,2)
result(i,2)=result(j,2)
result(j,2)=temp
temp=result(i,1)
result(i,1)=result(j,1)
result(j,1)=temp
end if
next
next
if jj<>0 then
for i=start to ends%>
<a href='<%=result(i,1)%>'><%=result(i,2)%></a>

Найдено вхождений: <%=result(i,3)%>


<% next
i=1
while i<=int(jj/10)+1
start=(i-1)*rec+1
ends=i*rec
if ends>jj then ends=jj
if page=i then%>
<b><%=start%>..<%=ends%></b>
<% else%>
<a href='javascript:document.form1.page.value=<%=i%>;document.form1.submit()'><%=st art%>..<%=ends%></a>
<% end if
i=i+1
wend
else%>
Документы не найдены, попробуйте сформулировать Ваш запрос по-другому.
<% end if
end if%>


</body>
</html>
27.08.2007, 12:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.08.2007, 12:30
Помогаю со студенческими работами здесь

Реализация поиска по сайту как на Work.ua
Всем привет! Интересует реализация поиска по сайту как на work.ua Все профессии в навигации скорее...

Поделитесь опытом как прикрепить к сайту платежную систему
Слушайте розкажыте окаких нибуть способах прикрепить к сайту платежную систему будь то биткоин или...

Удаление с запроса поиска точек, пробелов, символов (метод поиска по сайту)
Добрый день, знатоки, подскажите: Если клиент вбивает в поиск номер продукта (например:...

Реализация поиска по сайту - переход по станицам с сохранением запроса поиска
Всем известно что все запросы пользователя в данном случае хранятся в _GET массиве. Проблема такова...

Как сделать зависимый выпадающий список для поиска по сайту?
Всем привет. Подскажите, пожалуйста, если не трудно, как правильно написать скрипт, чтобы при...

ПОМОЩНИК ПО САЙТУ 3D Человек, как реализовать?
Здравствуйте. Не знал в каком форуме спросить поэтому пишу здесь... Мне нужно сделать помощника по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru