Как да се инсталира и конфигурира Сфинкса
Как да се инсталира и конфигурира Сфинкса.
Изтегляне Сфинкса (вземе версия на MySQL и произтичащи от 15 езика Win32 бинарни файлове w / MySQL + PgSQL + libstemmer + id64 подкрепят съответната битова дълбочина на вашата операционна система), разопакова като D: \ температура \ а \
Инсталацията е завършена сфинкс. В debiane просто правя ап-да инсталирате sphinxsearch.
Добави конфигурация за индексиращия като г \ температура \ S \ sphinx.conf базирани sphinx-min.conf.in, потребителя и интуиция (sphinx.conf файл приложен по-долу.).
В upomnyauty конфигурационния папка и влезте данни, така че да ги sozadem в D: \ температура \ а \
Атрибути (добавят и темата) - това е номер, който може да се съхранява в индекса за търсене и след това да ги използвате в състояние за търсене (търсене на определена тема или подреждане по дата).
(Под Linux печат показалец, просто защото там той е регистриран в системната папка). Ако всичко е наред, текстът ще покаже, и там ще видим:
индекс индексиране "index_news".
Внимание: collect_hits: mem_limit = 20480 KB твърде ниска, увеличаване на 25856 KB
Малко памет, необходимо е да се най-малко 25 MB (и защо е толкова много?)
общо 4 Документи, 1418 байта
общо 0.030 сек, 45854 байта / сек, 129.34 документи / сек
4 документ от база данни за индекса
Добре, индексът е създаден в татко данни, проверете дали работата за търсене? новобранец
Това е pechalka, нищо не е намерено. И все пак, vindovyh конзола не знае как да се UTF-8 и нарушава нашите bukovki. Опитайте английски:
Сфинксът ни даде назад номер новини, глоба. Сега ние да извършите търсене, демон и се пристъпи към PHP (и за подкрепа на UTF-8). Започнете демона:
(--console, че той не се опитва да се измъкне на заден план и може да бъде спрян от Ctrl + C). Няма да има признаци, че всичко е наред. От PHP за сфинкса могат да бъдат свързани по 2 начина:
- през MySQL-съвместим протокол за свързване с демона като база данни и търсене с помощта на SQL-заявки
- sphinx.api.php и използване на двоичен протокол
Нека започнем с възможности: 1. Писането тест-sql.php (в кода на приложението).
Пусни го от конзолата или през уеб браузър и сървъра (търсене демон трябва да работи разбира се). Ако всичко е наред, в отговор да се върне масив по този начин, с идентификационния номер на документа и неговите атрибути:
Run, също видите множество резултати. Е, когато всичко работи.
Ако се опитаме да погледнем на думата въз основа на деклинация, като "курсове" Не намирам нищо, защото в текста, че няма думи. Това не е добро. Нека да го оправя с помощта на вградени функции на Сфинкса.
Свържете български и английски език. Stemmer, писане в раздела за довереник в index_news:
Самият индекс не актуализира, така че спрете демона (Ctrl + C), стартирайте отново индекса и да рестартирате демона (демон работи във фонов режим, можем да добавим ключовата --rotate показалец и той ще поиска да рестартирате индексите на демон, операцията по търсене няма да бъде прекъснато) :
Сега се опитват да търсят думата "Разбира се" чрез PHP-скрипт. Всичко трябва да работи.
Lemmatayzer сигурност работи по-добре, така че е по-добре, за да изтеглите необходимите речници и да го свържете.
Сфинкса все още може да намали HTML-тагове и декодира HTML-субект (параметър html_strip), да определят диапазон от символи (charset_table), изключения и синоними (словоформи и изключения).
Можете да определите кои знаци са и не са част от една дума (например думите разделени с долна черта разглеждат като различен).
Също така, може да се изгради Сфинкса откъси в резултатите от търсенето (отрязани части от текста в непосредствена близост до подчерта ключовата дума) от BuildExcerpts () функция в API.
Добре, имаме индекс за търсене. Но как да го актуализира, когато се добавя или заличава, старите нови данни? Е, с премахването на прости, ако сфинкс се върна, за да ни несъществуващ номер в таблицата за запис - тогава тя се отстранява. Как да добавите данни за индекса?
- Основният индекс съдържа всички записи (или всички записи по-стари от определена дата), напълно възстановен всеки час / ден в размер на zaivisimosti данни
- RT-индекс, който съхранява само нови данни, които не са в основния индекс, който се актуализира в реално време, което се изчиства чрез повторно индексиране
Добави RT-индекс в конфигурацията:
Добре, сега показалец и да рестартирате демона. Добавяне Rt-индекс е най-SQL заявки, така че отделете SQL-test.php и леко се преработи:
Стартирайте файла. Сега търсене уверете се, че търсенето на думата "проверява" и "в реално време" ни дава резултати. Ако търсите чрез SQL, а не чрез приложния програмен интерфейс, не забравяйте да посочите в заявката двата индекса (Изберете (ОТ index_news, rt_news.)).
Индексът може да бъде актуализиран чрез прилагане на нов запис със същия идентификатор помощта на ЗАМЕНИ, проверете:
Нека покажем, че тя вече е в търсене на дума котката и дума в реално време не rezaltotov на.
Е, все още можете да изтривате записи от RT-индекс, използвайки изтриете от rt_news КЪДЕ ПО идентификатор (1, 2, 3)
- Оператор или: word1 | WORD2
- Операторът не може: word1 -slovo2
- подготвя за групиране
- mngogo и други опции, които имате в ръководството
Можете да сортирате и резултати на групата между различни атрибути.