Помогите дописать скрипт поисковика.

Psyholord
На сайте с 25.02.2009
Offline
97
645

Ситуация такая делаю поисковик и мне нужно что при запросе

Например Eminem он мне предлагал запросить варианты как Эминем и Еминем автоматом.

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

 }
$temp_text = substr($temp_text,0,-1);
$text_out .= "<p class=\"error\">Увы, по вашему запросу ничего не найдено.<br />Обратите внимание на написание, возможно в нем есть ошибка.";
}

$temp_text - как вы понимаете это слово которое вбивал пользователь.

Нашел в нете вот такой срипт


<?php

// функция превода текста с кириллицы в траскрипт

function encodestring($st)

{

// Сначала заменяем "односимвольные" фонемы.

$st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_",

"abvgdeeziyklmnoprstufh'iei");

$st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",

"ABVGDEEZIYKLMNOPRSTUFH'IEI");

// Затем - "многосимвольные".

$st=strtr($st,

array(

"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",

"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",

"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",

"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",

"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"

)

);

// Возвращаем результат.

return $st;

}

?>

Как бы мне это совместить?

pikasso
На сайте с 27.01.2008
Offline
150
#1

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

1. Звучание на русском не соответствует англоязычному, например: Риана получится Riana, а нужно Rihanna. Или что то типа такого: Пол Маккартни - Pol Makkartni, а нужно Paul McCartney.

2. Некоторые слова вообще не нужно вообще переводить: Dj Tiesto. В вашем случае будет что то типа дж тиесто.

И это только так, навскидку, на самом деле это очень и очень сложная задача. Путей решения есть несколько:

1. Поставить сторонний поисковой механизм (гугл или яндекс например).

2. Вручную вбивать все возможные варианты.

3. Обращаться к какой нибудь сторонней базе данных исполнителей.

Psyholord
На сайте с 25.02.2009
Offline
97
#2
pikasso:
На самом деле задача отнюдь не такая простая как может показаться на первый взгляд, слишком много подводных камней, вот несколько из них:
1. Звучание на русском не соответствует англоязычному, например: Риана получится Riana, а нужно Rihanna. Или что то типа такого: Пол Маккартни - Pol Makkartni, а нужно Paul McCartney.
2. Некоторые слова вообще не нужно вообще переводить: Dj Tiesto. В вашем случае будет что то типа дж тиесто.
И это только так, навскидку, на самом деле это очень и очень сложная задача. Путей решения есть несколько:
1. Поставить сторонний поисковой механизм (гугл или яндекс например).
2. Вручную вбивать все возможные варианты.
3. Обращаться к какой нибудь сторонней базе данных исполнителей.

Абсолютно согласен с вами.

Хммм. А как думаете можно написать скриптик который бы проверял написание посредством обработки данных через тотже яндекс и выводил бы варианты?

И есть ли в этом смысл.

pikasso
На сайте с 27.01.2008
Offline
150
#3
Psyholord:
И есть ли в этом смысл.

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

Psyholord
На сайте с 25.02.2009
Offline
97
#4
pikasso:
Я считаю что нету, но все конечно зависит от вашей конкретной задачи. На мой взгляд наилучшим решением будет поставить поиск от того же Яндекса и получать дополнительную прибыль от кликов по рекламе.

Да у меня просто немного подругому организованно.

Поиск от яндекса мне не подойдет так как мой поисковик ищет на конкретных серверах и при запросе какого либо слова создает страницу с контентом и выводит.

А если будет работать яндекс то он будет искать только то что уже имеется на сайте.

pikasso
На сайте с 27.01.2008
Offline
150
#5
Psyholord:
Поиск от яндекса мне не подойдет так как мой поисковик ищет на конкретных серверах и при запросе какого либо слова создает страницу с контентом и выводит.
А если будет работать яндекс то он будет искать только то что уже имеется на сайте.

Не знаю, поможет ли Вам это, но все же: вырезка из описания Яндекс Поиска:

В качестве области поиска вы можете указать список сайтов (до 20) или их разделов, тему из Каталога Яндекса или одну из тем, созданных вами в разделе «Тематический поиск».

(тыц)

ЗЫ

Я совсем недавно решал подобную задачу (даже по той же теме), разница в том, что поиск шел по сайту. Решил таким образом:

в конце каждого дня автоматом идет анализ всех поисковых запросов пользователей, которые вернули меньше определенного количества результатов (у меня меньше 10). Затем я вручную анализирую эти запросы и смотрю почему результатов так мало и одна из причин это как раз написание исполнителя не на том языке, если это так, автоматом всем композициям этого исполнителя прописывается синоним (Rihanna|Риана|Рианна) и следующий поиск уже выдает адекватные результаты. Через пару месяцев такого вот ручного модерирования практически у всех популярных исполнителей уже есть свои синонимы.

A
На сайте с 19.07.2010
Offline
130
#6
Psyholord:
Да у меня просто немного подругому организованно.
Поиск от яндекса мне не подойдет так как мой поисковик ищет на конкретных серверах и при запросе какого либо слова создает страницу с контентом и выводит.

это называется динамический дорвей, "поисковик" - это сильно шикарное название для него 😂

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

.............

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий