Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Интелектуальный поиск
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Интелектуальный поиск

Страниц (2): [1] 2 »
 

1. TroL - 24 Июня, 2014 - 09:00:12 - перейти к сообщению
Я задумал написать поиск. Может где и есть статья про это но я не нашел.

Например строка поиска "1 комнатная квартира в новокузнецке"

Получается мы ищем КВАРТИРУ а эта категория жилой недвижимости
Город НОВОКУЗНЕЦК
Количество комнат 1

А может быть и "комната в Новосибирске снять" или "Новостройки в москве" но и другие пользовательские запросы

Это идет взамен фильтра. Как реализовать такой поиск?
2. LIME - 24 Июня, 2014 - 09:21:57 - перейти к сообщению
3. Zuldek - 24 Июня, 2014 - 09:32:55 - перейти к сообщению
TroL пишет:
Как реализовать такой поиск?

Строго говоря, чтобы отобразить релевантные результаты по запросу "1 комнатная квартира в новокузнецке", ваша база данных должна содержать следиующие данные по объектам:

1. Тип недвижимости (квартира)
2. Количество комнат (1)
3. Геозона (Новокузнецк)
4. Тип сделки (снять, купить, сдать и проч.)

Далее путём выбора фильтров или ввода текста для поиска (первый вариант удобнее и для пользователя и для разработчика) формируете запрос к вашей пс. Если все же будете использовать текстовое поле вместо фильтров, то применение Sphinxa (которого вам порекомендовал Lime) и аналогов будет целесообразным. В этом случае нужно будет правильно настроить индексы и скормить сфинксу базу, чтобы индексы содержали приближенные к поисковым фразам значения. Также потребуется тонко настроить синонимы в файле конфигурации.
Если же поиск недвижимости ведётся по фильтрам (а он и должен таким быть), то можно обойтись sql-запросом к базе данных (пример — http://realty[dot]sarbc[dot]ru )
4. TroL - 24 Июня, 2014 - 09:48:58 - перейти к сообщению
Zuldek пишет:
TroL пишет:
Как реализовать такой поиск?


Если же поиск недвижимости ведётся по фильтрам (а он и должен таким быть), то можно обойтись sql-запросом к базе данных (пример — http://realty[dot]sarbc[dot]ru )


Мне нужно именно через поисковую строку, фильтр уже организован
(Добавление)
LIME пишет:
например http://habrahabr.ru/post/132118/

Интересно, но это же модуль к апачу или что то такое?
Это мне не подходит, хотелось бы написать ядро самому.
Какие принципы использовать для этого надо?
5. LIME - 24 Июня, 2014 - 09:59:22 - перейти к сообщению
TroL пишет:
но это же модуль к апачу или что то такое
Zuldek пишет:
применение Sphinxa (которого вам порекомендовал Lime) и аналогов будет целесообразным
это поисковый сервер
умеющий взаимодействовать с разными источниками данных среди которых и Mysql
есть другие
этот наверное наиболее описан в статьях
TroL пишет:
Это мне не подходит, хотелось бы написать ядро самому.
А?! а...нюню
в добрый путь
Цитата:
Пёсик для бешеной собаки семь верст не крюк
6. TroL - 24 Июня, 2014 - 10:16:27 - перейти к сообщению
LIME пишет:

TroL пишет:
Это мне не подходит, хотелось бы написать ядро самому.
А?! а...нюню
в добрый путь

У менянет возможности устанавливать такие сервера, для этого требуется же доступ к файловой системе
(Добавление)
Вот есть стандартная задумка
разбить строку на массивы

найти например элемент города, путем перебора и регулярки ( с регулярками у меня проблемы)

Найти так же числительные которые будут искать номер дома, количество комнат или даже площадь

и в таком духе
7. LIME - 24 Июня, 2014 - 10:20:36 - перейти к сообщению
даже не знаю бывают ли на хостингах такие вещи но ты хоть узнай сначала
(Добавление)
TroL пишет:
и в таком духе
а так же все склонения, спряжения, однокоренные слова и в таком духе
(Добавление)
а да...синонимы еще))
8. TroL - 24 Июня, 2014 - 10:23:23 - перейти к сообщению
LIME пишет:
даже не знаю бывают ли на хостингах такие вещи но ты хоть узнай сначала
(Добавление)
НУ если других возможностей не найдет покараю туда, или откажемся от такого поиска


TroL пишет:
и в таком духе
а так же все склонения, спряжения, однокоренные слова и в таком духе


Но можно же искать и по корню
(Добавление)
А как сделать поиск слова из массива с возможностью ошибки в слове
например поровнять слова квАртира и квОртира и квартирИа.
9. Zuldek - 24 Июня, 2014 - 10:50:48 - перейти к сообщению
Что вы привязались именно к сфинксу то?
Есть и php-реализации поисковых движков.
Zend_Lucene возьмите. Это php-реализация проекта Apache Lucene project. Вероятно получится обойти ограничения хостинга связанные с установкой Sphinx и ему подобных демонов на сервер хостера.
Изучите как работает и пишите свой велосипед если так хочется.
TroL пишет:
Но можно же искать и по корню
(Добавление)
А как сделать поиск слова из массива с возможностью ошибки в слове
например поровнять слова квАртира и квОртира и квартирИа.

Возможно в процессе изучения кода поймете, почему ваши поиски по массивам и т.п. верхушка айсберга подобных систем.

Хоть и конкретно для вашей задачи мне совершенно непонятна необходимость городить огород если поиск по фильтрам уже реализован.
10. TroL - 24 Июня, 2014 - 10:53:50 - перейти к сообщению
Zuldek пишет:
Что вы привязались именно к сфинксу то?
Есть и php-реализации пс.
Zend_Lucene возьмите. Это php-реализация проекта Apache Lucene project. Изучите как работает и пишите свой велосипед если так хочется.
Хоть и конкретно для вашей задачи мне совершенно непонятна необходимость городить огород если поиск по фильтрам уже реализован.



Потому что фильтр находится внутри определенной категории. А с главной страницы или тестовой неплохо бы тоже как то искать, потому что это фильтр будет еще и по новостям и по текстовым страницам

А вообще я исполнитель проекта, так что не мне это надо.
11. Zuldek - 24 Июня, 2014 - 11:00:30 - перейти к сообщению
TroL пишет:
Потому что фильтр находится внутри определенной категории. А с главной страницы или тестовой неплохо бы тоже как то искать, потому что это фильтр будет еще и по новостям и по текстовым страницам

А вообще я исполнитель проекта, так что не мне это надо.

С этого и надо было начинать.
На самом деле, поиск по новостям или статьям в корне отличается от поиска по объектам недвижимости и к примеру, поиска автомобилей.
Вы привели пример конкретный по недвижимости, вам конкретно обосновали почему для данного типа контента использование полнотекстового поиска нецелесообразно.

Реализация же универсального поискового движка у вас будет очень увлекательным занятияем, потому что будете писать маленьки яндекс.
Через недели мытарств вы прийдете к тому, что ваша система не сможет формировать нормальные индексы на основе БД и вам придётся либо скармливать ей веб-страницы целиком (некоторые вполне способны их кушать, а не способны, так можно отдать контент и из базы), либо формировать отдельные запросы к бд для каждого типа контента (объявления, статьи, новости) чтобы сформировать нормальные индексы (почему, надеюсь, понятно).
На последнем варианте реализации вы, скорее всего и остановитесь, на базе Zend_Search_Lucene или Sphinx
12. TroL - 24 Июня, 2014 - 11:08:58 - перейти к сообщению
Я в общем то и собираюсь по последнему варианту работать.
Как я говорил что обычный поиск по статьям написать будет не проблема

вот каким путем создать поиск по каталогу это беда
(Добавление)
помогите мне с этим вопросом пожалуйста
http://forum.php.su/topic.php?fo...4&topic=2574
13. Zuldek - 24 Июня, 2014 - 11:23:20 - перейти к сообщению
Понимаете, пс не ищет так, как вы предполагаете.
Я дал вам пример популярного поискового движка написанного на Php почитайте как он устроен, как формирует поисковый индекс, как выглядит поисковый индекс и проч. Пока же вы пытаетесь построить деревянный небоскрёб и просите чтобы вам с этим помогли.
14. TroL - 24 Июня, 2014 - 11:43:56 - перейти к сообщению
Zuldek пишет:
Понимаете, пс не ищет так, как вы предполагаете.
Я дал вам пример популярного поискового движка написанного на Php почитайте как он устроен, как формирует поисковый индекс, как выглядит поисковый индекс и проч. Пока же вы пытаетесь построить деревянный небоскрёб и просите чтобы вам с этим помогли.

Деревянный небоскреб тоже не плохо. А статьи я обязательно на досуге почитаю. сегодня ищу кустарные способы

 

Powered by ExBB FM 1.0 RC1