Java-скрипт для поиска.
Приветствую! Народ помогите найти скрипт для реализации поиска. Необходим скрипт, который выполнял бы поиск текста по сайту на всех страницах... Заранее спасибо :) :) :)
|
Такое не на JavaScript делают
|
На яве возможно такое реализовать. На PHP найти легче. Но меня интересует именно ява...
|
Во первых не «ява», а «JavaScript», если вы конечно не «Java» имели ввиду, тогда вам в другой форум. «JavaScript» и «Java» совершенно разные вещи.
Во вторых, для поиска по сайту требуется серверная часть, и если вы и найдете «JavaScript» каким-то образом реализующий возможности поиска, то это скорее всего будет скрипт поисковой системы «Google», «Яндекс», «GoGo» или какой-то другой, и он будет использовать свой сервер для выдачи поисковых запросов. Но на чистом «JavaScript» без применения серверных технологий, еще раз повторюсь, такие вещи не делают. |
Цитата:
|
Kolyaj,+1)))
представляю себе этот ужас |
<script laguage="javascript" type="text/javascript"> function search(site,text) { document.getElementById('ifrSearch').src='http://google.ru/search?q=site:'+site+' '+text; } function start_search() { search('адрес сайта',document.getElementById('what').value); } </script> <input type="text" id="what" /><input type="button" onclick="start_search();" /><br /> <iframe id="ifrSearch"></ifame> Только двиг чужой всё же.... |
Прошу прощения, забыл указать что поиск необходим именно локальный... т.е. грубо говоря сайт будет записан да CD. И туда необходимо интегрировать поиск... Скрипты, которые будут обращаться в сеть, не катят (
|
Ну тогда все элементарно :)
Перед записью диска, создаете индекс всех текстов, а потом уже по этому индексу JavaScript'ом быстренько все ищете. Можно усложнить задачу, и реализовать морфологию. Да вообще, много чего можно, и работать это будет достаточно шустро (данные-то из инета качать не надо), вопрос в реализации. |
Цитата:
|
Это вам уже на форум о поисковых технологиях.
|
И всеже если кто ответит, буду признателен... Заранее спасибо.
|
Если из-под IE, то File System Objects и флаг вам в руки:)
А вообще можно сделать файл, типа такого: <a href="file_0.html"></a> <a href="file_1.html"></a> <a href="file_2.html"></a> Сделать пагу, загружающую файл в iframe (разумеется, невидимый).Затем пага его парсит, получаая ссылки на читабельные файлы (не нужен ведь в .jpg файлах поиск?). По этим ссылкам в другой ифрейм (тоже невидимый) загрузить файл, получить его код, при наличии искомой строки, вывести ссылку. |
Это ужасное и ничем неоправданное решение. Такие вещи должны делаться на сервере.
|
Цитата:
либо еще к примеру регуляркой по типу Код:
/>\s*([^<>]*\S+[^<>]*)\s*</U Цитата:
ЗЫ на универсальность,полноту, или правильность, или хоть на какие-то положительные качества для этого решения не претендую. просто, первое что тпришло в голову. ЗЫЫ индексацию стоит проводить средствами других языков |
Это ужасное и ничем неоправданное решение. Такие вещи должны делаться на сервере. Человек же написал, чтопоиск должен происходить на локалхосте, и страницы находятся тоже на нём? Или меня глюкануло???? |
Цитата:
|
ПОМОГИТЕ ПОЖАЛУЙСТААААА.... Я НИЧЕГО НЕ СМЫСЛЮ В JAVASCRIPT.... ПОДСКАЖИТЕ ПОЖАЛУЙСТА.... МОЖНО ЛИ НАЙТИ СЛОВО В ТЕКСТЕ С ОПРЕДЕЛЕННЫМ НОМЕРОМ С ПОМОЩЬЮ JAVASCRIPT, А ПОТОМ ЕЩЕ И УДАЛИТЬ ЕГО...... ИНАЧЕ Я СКОРО СОЙДУ С УМА.............................. S........O.........S
|
можно
|
если Caps Lock выключить
и вообще специальный смайлик есть - :help: |
И вообще истеричкам на JS нельзя программировать. Их браузеры быстренько с ума сведут :)
|
Они кого угодно сведут с ума.:)
Надо быть психически устойчивым.не путать с "психически здоровым".вот такие как раз легче всего ломаются |
воттолько без alert не работает цикл прохождения
<script> var LinkMass=new Array(4); var r=s=str1=str2=str3=''; var i=cikl=0; var n=5; LinkMass[0]='index.html'; LinkMass[1]='produkciya/index.html'; LinkMass[2]='proizvodstvo/index.html'; LinkMass[3]='kontakti/index.html'; LinkMass[4]='fotogalery/index.html'; function func() { while (cikl <5) { document.getElementById('Result').innerHTML=document.getElementById('Result').innerHTML+cikl+"<br>"; poisk(cikl); cikl++; } } function poisk (i) { r=srch.value; s=document.getElementById('Result').innerHTML; str3 = " "; str1 = ""; alert (i); fram.document.location.href=(LinkMass[i]); document.getElementById('frams').src=LinkMass[i]; str1 =(fram.document.body.innerText.substring(fram.document.body.innerText.indexOf(r,0),fram.document.body.innerText.indexOf(r,0)-100)); str2 =(fram.document.body.innerText.substring(fram.document.body.innerText.indexOf(r,0),fram.document.body.innerText.indexOf(r,0)+250)); str3 = ('<b>...</b>'+ str1 + str2 + '<b>...</b>'); if (str1 != '') { document.getElementById('Result').innerHTML=s+"<br><p align='justify'><a class=\'Menu' href=\'"+ document.getElementById('frams').src +"\'>"+fram.document.title + "</a> "+"<br>"+ document.getElementById('frams').src +"<br><br>"+"<a class='Text' style='cursor: default'>" + str3 + "</a>"+"<hr></p>" } } </script> |
это что такое?
|
вот можно так...
вот можно так, это очень старый метод... только ссылки (базу) придется ручками записать..
на странице напиши: <script SRC="database.txt"></script> потом форма поиска: <form method="POST" name="form1" style="font-size: 9"><td width=740 class="nav" style="background-image: url('b5.gif'); background-color:#F4F6F8" height="32"><p align="right"><input type="text" name="sub" size="15" style="font-size: 9"><input type="reset" value="Поиск" onClick="dolt()" style="font-size: 9"> туда же загрузи текстовый файл с названием database.txt куда запишешь : /****************************************************************** ** ** ** Variable WebPage JavaScript ** ** Version 1.0 ** ** Web: ** ** E-mail: ** ** Copyright © 2007 ** ** All Rights NOT Reserved. ** ** ** ******************************************************************/ Keyword = new Object(); Address = new Object(); Keyword[0] = 2 Keyword[1] = "Очень красивый город.... " Address[1] = "http://www.Baku.az/" Keyword[2] = "Последние новости Азербайджана " Address[2] = "http://1news.az/" function contains(sub,s){ strlen1=sub.length strlen2=s.length istrue=false for(i=0;i<=strlen2;i++) { comp=s.substring(i-1,strlen2) comp=comp.substring(0,strlen1) if(comp==sub){ istrue=true break } } return istrue } function dolt() { loopCount=0; var Found=false var Item=document.forms[0].sub.value.toLowerCase(); stats='toolbar=no,location=no,scrollbars=yes,directories=no,status=yes,menubar=no,height=500,width=790,top=0,left=0' stats += 'scrollbars=yes,resizable=yes' MsgBox = window.open ("","msgWindow",stats) MsgBox.opener = window; MsgBox.opener.name = "opener"; MsgBox.document.write("<head><title>Результат поиска по сайту: для "+Item+"</title></head>"); if(document.form1.sub.value=="") MsgBox.document.write('<h5><font face="Verdana,Arial,Helvetica" color="#000000">Общая информация для поиска по сайту<HR></h5></font>'); else MsgBox.document.write('<h5><font face="Verdana,Arial,Helvetica" color="#000000">Результат поиска по сайту: для '+Item+'<HR></h5></font>'); for(var i=1; i<=Keyword[0]; i++){ contains(Item,Keyword[i].toLowerCase()) if(comp==Item){ loopCount++; Found=true; MsgBox.document.write('<div align="center"><center><table border="0" width="740" cellspacing="0" cellpadding="8"><tr><td width="2%" bgcolor="#FFFffF" height="18"align="center"><font face="Verdana,Arial,Helvetica" size="2" color="#000000"><h5>'+loopCount+'. </h5></font></td> <td width="150%" bgcolor="#FFFFFF" height="18" align="left"><font color="#000000"></font><fontcolor="#000000"><font face="Verdana,Arial,Helvetica" size="2" color="#000000">'+Keyword[i]+'<BR><A HREF='+Address[i]+' target="_blank">Подробнее...</A></font></h1></font><font color="#000000"></font></td></tr></table></center></div>') MsgBox.document.write('<script Language="JavaScript">window.status=("Total '+loopCount+' found")</'+'script'+'>'); } } if(!Found) MsgBox.document.write('<font face="Verdana,Arial,Helvetica" size="2" color="#FF0000">По вашему запросу ничего не найдено. </font>') MsgBox.document.write('<font face="Verdana,Arial,Helvetica" size="2" color="#0054A0"><p align="center"><HR><a href="mailto:почта@mail.az">© ваша компания LTD 2007 - 2008 </a></p></font>') MsgBox.document.write('<style><!--A:link{color: #FF0000; text-decoration:none} A:visited {color: #0054A0; text-decoration:none}--></style>') if(loopCount==0){ MsgBox.document.write('<script Language="JavaScript">window.status=("Total 0 found")</'+'script'+'>'); } } |
Жаль, что не заметил этого вопроса раньше. Ну, может, кому-то ещё пригодится... Решения существуют - достаточно стандартные, и не очень:
1) HTML Help Workshop: скомпилировать набор веб-страниц с указанием опции "Полнотекстовый поиск"; 2) Если данные достаточно однородные, запихать их в текстовую таблицу, написать небольшой обработчик на Javascript для объекта Tabular Data Control и опять же скомпилировать всё с помощью HTML Help Workshop - когда-то я так целые словари делал (http://figur.ir2.ru/tolktdc.zip, 3.5 МБ, Словарь Ожегова) |
Часовой пояс GMT +3, время: 08:58. |