Поиск. Как это может быть ?!
От: Krisha Украина  
Дата: 07.11.07 08:04
Оценка:
Добрый день.
Стоит задача сделать аналогичный поиск:
http://www.e-katalog.com.ua/all2find.php?search_=afsafD840fwef&useSession_%5BidBrand_%5D=&id=122

Я не могу понять логику Направьте на путь истинный плз
Re: Поиск. Как это может быть ?!
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 07.11.07 08:42
Оценка:
Здравствуйте, Krisha, Вы писали:

[]

K>Я не могу понять логику Направьте на путь истинный плз


Имхо логика довольно проста: постулируем минимальную длину строки для поиска равную, например, 3 буквам. В случае, если по введенной строке поиска ничего не найдено, создаем список подстрок, циклически сдвигаясь на один символ в строке. Каждая подстрока будет длиной "минимальная длина строки для поиска". Так, в приведенном вами примере лексемы будут такими:

afs
fsa
saf
afD
840
40f
0fw
fwe
wef


Выбрасываем повторяющиеся, если есть, и ищем по LIKE. Вот и все.

Примерно такой-же алгоритм применяется на сайте по указанной вами ссылке, что подтверждает следующий факт: несмотря на то, что есть радиотелефон марки XD1220, в поиске находится "проекционный переносной экран .... 1220: здесь.

З.Ы. минимальная длина лексемы подбирается по вкусу и может быть равна, например, 4-м.
<< Лень — мать всех пороков, а родителей нужно уважать. >>
Re[2]: Поиск. Как это может быть ?!
От: spyse  
Дата: 07.11.07 08:53
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Имхо логика довольно проста:

А может и не так

В строке поиска "nokiaD840sony" вываливает только самсунги, nokia и sony в пролете
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Поиск. Как это может быть ?!
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 07.11.07 13:01
Оценка: +1
Здравствуйте, spyse, Вы писали:


F>>Имхо логика довольно проста:

S>А может и не так

S>В строке поиска "nokiaD840sony" вываливает только самсунги, nokia и sony в пролете


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