Сергей
засчет чего?
Chuvi
а где это вообще испольуется? откуда берутся слова-подсказки?
На сайте, в поле поиска. Слова подсказки - географические наименования, названия регионов, курортов, всяких там гостиниц и баз отдыха.
AlekVolsk
если честно, то оно как бы и не к месту, потому и проигнорировали
Chuvi
Объём массива порядка 15000 единиц.
AlekVolsk
не проще ли использовать браузерный автокомплит?
Eugene
возможно elasticsearch все это из коробки умеет, если скормить ему базу слов, синонимов, etc, но не уверен что потянешь ;)
Eugene
ну и базу слов и примеры бы :)
Chuvi
Сейчас два варианта решения. На проде - аякс запрос по содержимому поля поиска с выборкой по базе. Выдача результатов запроса. Но каждый раз в аякс и базу на каждый чих - это плохо, кмк. Сейчас снимаю автоподсказки с интернет-зависимости - кэширую в sessionStorage массив всех вариантов и ищу по ним.
Сергей
да это же мелкие сюрпризы, такие сюрпризы устаканиваеются походу дела
Chuvi
не проще ли использовать браузерный автокомплит?
Не вариант ваще - он же уродский....
AlekVolsk
извини, тебе какое дело, как и что он берет и обсуждает, называет? у каждого свои методы работы, может ему так удобнее? может он заранее знает о качестве псд из опыта работы с данным заказчиком? тебе какое дело? речь изначально вообще не об этом
Eugene
можешь сделать ограничение типа length > 3
Eugene
Чой-то?
а ты собрался сразу все слова куда-то выгружать и на фронте по ним искать?:)
Сергей
и? ну не дорисовали. заказчик попросил сверстай пока одну часть макета, может там они не успевают или че там уж - хз. я говорю, ок. тем более я не первый раз с этим заказчиком работаю, бабки он платит. ни разу не опрокидывал меня.
Chuvi
в базе слова как отсортированы?
Мы не то обсуджаем. Ищу я уже нормально. С этим проблем нет. Меня интересует алгоритм выбора наиболее верного варианта из подходящих.
AlekVolsk
чувак, есть хорошее правило в интерактивных сообществах: если конкретно об этом тебя или всех не спросили - лучше не лезь, иначе своим же советом и получишь
Сергей
первоначально заказчик мне сказал, сверстай только одну часть макета т.к. макет не дорисован еще. на днях я тебе скину полный вариант дорисованный.
AlekVolsk
Мы не то обсуджаем. Ищу я уже нормально. С этим проблем нет. Меня интересует алгоритм выбора наиболее верного варианта из подходящих.
надо добавить поле релевантности: чем выше данное слово встречается - тем выше егорелевантное значение, наиболее релевантные значения показывать вначале
Eugene
Вот так это выглядит
можешь посмотреть реализацию в других фреймворках/языках
Сергей
чего ясно?
Сергей
нет, я его не просил ни о чем
Сергей
за отдельную плату
Сергей
в смысле? ты мне написал , я ответил
AlekVolsk
Ты понимаешь, географические наименования в большинстве своём стремятся к уникальности. )))
и все равно что-то да все равно всплывает чаще )) кавказ явно чаще урала будет встречаться ))
Сергей
вот не надо говорить чего не знаешь.
Chuvi
можешь посмотреть реализацию в других фреймворках/языках
Что ты не понял во фразе "обсудить алгоритмы выбора"? Я не прошу мне помочь это реализовать...
Eugene
AlekVolsk
A16, ты влез в чужой разговор и теперь еще права качаешь?
AlekVolsk
кто ту за модера присутствует сейчас?
AlekVolsk
вот зарекешься потом людям помогать после этого
Сергей
я не пойму как можно о чем то говорить при этом не зная ниче про обстоятельсва, человека. я скажу ему, хочешь правки - плати
Сергей
вот кипиш
Сергей
я же не вчера этого заказчика откопал. уже не первый раз с ним работаю
Eugene
бизнес, алгоритмы, срачи, что дальше?
Chuvi
и все равно что-то да все равно всплывает чаще )) кавказ явно чаще урала будет встречаться ))
Я всё же опять же не это обсудить то хотел. Я спрашиваю как лучше выбрать из массива с учётом опечаток. ) Буду конкретнее - сейчас я ищу в массиве строку перебором при помощи indexOf(). Если ничего не нашлось, я ставлю флаг опечатка, убираю последнюю букву из поисковой строки и ищу по получившемуся. Если опять ничего не нашлось, убираю первую букву (вдруг опечатка в ней) и ищу по получившемуся, если пять ничего не нашлось, убираю последнюю букву и опять прохожусь поиском. Ну и так усаживаю строку до одного слога масимум. Центрального обычно. Что меня не сильно устраивает - выдача не совсем релевантна...
AlekVolsk
Что меня не сильно устраивает - выдача не совсем релевантна... вот потому и нужно поле релевантности
Chuvi
эмм, регуляркой
Вот не надо про регулярки пожалуйста. Мы тут день сппорили, меня всем чатом убеждали что регулярки зло.
AlekVolsk
канешн зло, но больше никак ты быстро это не сделаешь
AlekVolsk
Релевантности чему?
предшествующим выдачам
Eugene
я бы посоветовал поисковые движки, но вам нужен алгоритм :)
Eugene
а вообще я бы делал скорей всего аякс запросом
Eugene
field.length > 3 - отправить запрос
AlekVolsk
на яндекс.академии есть несколько видеодокладов о поисковой оптимизации и определении релевантной выдачи, как раз абстрактную алгоритмику обсуждают, рекомендую поискать
Eugene
ну я не знаю, что ты ищешь, по каким филдам и что вооще нужно найти, какой объем, сколько результатов выводить
Eugene
типа такого
Eugene
?
Сергей
вообще первоначально я не спрашивал "как решить, что, почему", к слову
Eugene
Хотя нет. Наверное лучше вернуть весь список и по нему искать.
Eugene
регуляркой например. Ну блин условия все же не известны
Сергей
и? что изза этой мелочи мне отказываться от заказа?
Chuvi
field.length > 3 - отправить запрос
Медленно. Аякс не меньше 100ms, поиск по массиву максимум 25...
Сергей
ну, это ему писать, ждать. тем более связи с дизайнером нету у меня.... а так все можно походу дела решить
Eugene
Медленно. Аякс не меньше 100ms, поиск по массиву максимум 25...
ну тогда отдавай весь список и ищи при условие например field.length это быстрее да, кстати интересно посмотреть на производительность:)
Chuvi
ну я не знаю, что ты ищешь, по каким филдам и что вооще нужно найти, какой объем, сколько результатов выводить
Я писал выше - » Слова подсказки - географические наименования, названия регионов, курортов, всяких там гостиниц и баз отдыха.
Сергей
я дизайнер? нет. ссылку чего ? сайта?
Eugene
https://select2.github.io/examples.html#data-ajax посмотри на эту реализацию, дал ссылку с якорем. Может быть что-нибудь придумаешь
Chuvi
а ты их куда-то в select засовываешь или как?)
Это я тоже выше писал - » Сейчас два варианта решения. На проде - аякс запрос по содержимому поля поиска с выборкой по базе. Выдача результатов запроса. Но каждый раз в аякс и базу на каждый чих - это плохо, кмк. Сейчас снимаю автоподсказки с интернет-зависимости - кэширую в sessionStorage массив всех вариантов и ищу по ним.
Сергей
причем тут это?
Eugene
Не, оно не учитывает опечатки.
ну у тебя же свой бэкэнд, как напишешь, так и будет работать :)
Сергей
ссылка на сайт - это конф. инфа?
Eugene
NDA не шутки:)
AlekVolsk
воскресная ночь... какого хрена вы тут все делаете? а ну быстро пошли своих баб ебать!
Eugene
мне тут пришлось подписывать 3 страницы!
Eugene
бегать печатать, копировать
Eugene
оно существует и оно не просто так :)