Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Разработка системы поиска сайта. (https://javascript.ru/forum/events/55015-razrabotka-sistemy-poiska-sajjta.html)

Barett 10.04.2015 09:10

Разработка системы поиска сайта.
 
Доброго утра, дамы и господа.
Я могу ошибаться с выбором раздела, но это мой первый пост здесь :-? .
Надеюсь на вашу помощь. Нигде не нашел подобной документации и темы, но может быть, плохо искал. Только начал погружаться в детальное изучение веб-разработки, как тут же поступило задание "Создать поиск, как у Яндекса". Звучит достаточно размыто, но попытаюсь объяснить - разработать и прикрутить поиск контактов ко внутреннему сайту предприятия:
- при входе на страницу пользователя дружелюбно встречает строка поиска(html & css), куда будут вводиться начальные_данные/e-майл/номер_телефона, и в отдельном окошке (фрейм или лэйбл) будут мгновенно отображаться строки, содержащие введенные данные, так называемый мгновенный поиск. (Ctrl+F - не то, нужна бОльшая информативность). И при всем этом, чтобы отображались наиболее популярные у пользователя контакты, которыми он пользуется.
Я не прошу написать мне этот скрипт, но очень буду рад подсказке, куда мне рыть, где используется какие технологии и приемы. Вероятнее всего, будет удобней общаться в мессенджере, если кто будет готов мне помочь в объяснениях.
Благодарю, за уделенное внимание. :victory:

ksa 10.04.2015 09:20

Цитата:

Сообщение от Barett
куда мне рыть, где используется какие технологии и приемы

Начать можно с этого
http://javascript.ru/ajax/intro
Закончить этим
angular.ru

kostyanet 10.04.2015 16:54

Все давным давно разработано и можно пользоваться если бы не одно большое гав но: гугель и яндекс заставили людей забыть каноны, небось и новая винда уже ищет файлы без масок и вопросов.

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

Для серверов есть Сфинкс.

kostyanet 10.04.2015 17:01

Там же все просто. Заводится индекс для полнотекстового поиска, индекс может быть комбинированный, юзер вводит вас* и видит всех кто начинается с имени василий, вася, васисуалий и тп. Элементарная вещь все эти маски и индексация. В смысле для нас, потому что им уже стопицот лет этим технологиям нормального машинного доения.

Народ не хотел так искать, но другого не было и он учился, научившись уже хотел. Но пришли гугли и всех в одночасье осчастливили - а зачем маски-смазки, человек имеет право на рекламу, а как ее продать, если он мимо всех ключевых слов пройдет замаскировавшись?

Я еще помню как на альтависте и яндексе можно было искать по маскам, плюсам и минусам. Теперь остался только минус. Это ненадолго.

Суть вони в том, что если бы не эти козлоящеры, таких вопросов бы не возникло. Там же в два клика все делается - этот полнотекстовый поиск. Который нормализованный.

kostyanet 10.04.2015 17:04

Цитата:

Сообщение от Barett
(Ctrl+F - не то, нужна бОльшая информативность).

Балин, вы про поиск по странице что ли? Типа все уже загружено, надо только показать где оно?

Alexander Belov 16.04.2015 07:28

Цитата:

Сообщение от ksa (Сообщение 365859)
Начать можно с этого
http://javascript.ru/ajax/intro
Закончить этим
angular.ru

1) Можно ли реализовать такой поиск на нативном Javascript (вместо Angular.js)?

2) Можно ли обойтись без сервера? Например, все данные, которые будут доступны для поиска, сохраняются (либо удаляются) в отдельный файл в папке сайта на локальном компьютере (например search.json), и поиск будет вестись по содержимому этого файла?

ksa 16.04.2015 08:15

Цитата:

Сообщение от Alexander Belov
Можно ли реализовать такой поиск на нативном Javascript (вместо Angular.js)?

Так на чем Angular написан! На JS. :)
Цитата:

Сообщение от Alexander Belov
Можно ли обойтись без сервера? Например, все данные, которые будут доступны для поиска, сохраняются (либо удаляются) в отдельный файл в папке сайта на локальном компьютере (например search.json), и поиск будет вестись по содержимому этого файла?

И это можно... :yes:

Alexander Belov 16.04.2015 19:29

Цитата:

Сообщение от ksa (Сообщение 366931)
Так на чем Angular написан! На JS. :)

И это можно... :yes:

Я, наверное, не совсем верно выразился. Под "нативным javascript" я имел в виду стандартный код, а не фреймворк и не библиотеку. Т.е., например JQuery - это библиотека, созданная при помощи JS, но код JQuery не является нативным Javascript'ом.

Alexander Belov 18.04.2015 22:52

Barett,
может быть, пригодится. Наткнулся на такую замечательнейшую вещь в HTML5 как datalist
https://jsfiddle.net/8y9thaub/

ksa 20.04.2015 08:24

Цитата:

Сообщение от Alexander Belov
я имел в виду стандартный код

Любой путний программист имеет в своем арсенале функции, позволяющие ему облегчить работу...
Но даже если их нет, ему придется написать их в процессе разработки очередной задачи.

Т.о даже если ты исключаешь подключение сторонних скриптов, никто не мешает написать сходный с ними код, который и будет помогать в решении проблем.
Так более понятно?

Alexander Belov 20.04.2015 18:09

Цитата:

Сообщение от ksa (Сообщение 367493)
Любой путний программист имеет в своем арсенале функции, позволяющие ему облегчить работу...
Но даже если их нет, ему придется написать их в процессе разработки очередной задачи.

Т.о даже если ты исключаешь подключение сторонних скриптов, никто не мешает написать сходный с ними код, который и будет помогать в решении проблем.
Так более понятно?

Да, понятно

Alexander Belov 07.05.2015 05:14

Делаю систему поиска на сайте на localhost.

Есть форма поиска input, к которой привязан datalist (var datalist).

При нажатии на кнопку (ok.addEventListener('click', function() {...код...})) в option этого datalist попадают слова из localStorage (var searchWords)

При клике на input-форму поиска не отображаются и не находятся поисковые слова (не показывает "подсказки" при вводе начальных букв), которые определяет функция посредством добавления их в качестве option в datalist.

Но во вкладке Elements инструмента разработчика Google видно, что эти options создаются динамически (по клику пользователя на кнопку) и их value - мои поисковые слова.

Подскажите, пожалуйста, как разобраться в ситуации. К сожалению, не получилось сделать код с динамическим добавлением в JS Bin или в JS Fiddle.

Поэтому выкладываю код сырым:
ok.addEventListener('click', function() {

                var events = JSON.parse(localStorage.getItem('events')) || [];

                for (var i=0; i < events.length; i++) {
                  
                var searchWords = JSON.stringify(events[i].Event);  

                var datalist = document.getElementById('eventDatalist');

                var option = datalist.appendChild(document.createElement("option"));

                option.value = searchWords;
  

               
                };
                
              }

 );

kostyanet 14.05.2015 05:34

Не доходит блин. Нельзя сделать как у гугля или яндекс не будучи гуглем или яндексом. Тут вообще не вопрос технологий, а вопрос капиталов. Есть деньги - купите ПО, нет денег - свое такое же вы НЕ напишите. Ну или напишите когда уже помрете.


Часовой пояс GMT +3, время: 09:41.