Mysql
 sql >> база данни >  >> RDS >> Mysql

Интегриране на Sphinx към MySQL

Не мога да направя това. Sphinx (когато е активиран за sphinxQL) просто ви дава сървър, който изглежда като този на mysql - т.е. той използва същия комуникационен протокол - главно така че може просто да използва повторно mysql клиентските библиотеки, вместо да се налага да създавате нова само за sphinx.

Те са различни „сървъри“. Свързвате се към mysql сървър, за да изпълнявате mysql команди; се свързвате със сървъра на sphinx, за да изпълнявате команди на sphinxQL.

Приложението ще трябва да се свърже към всеки „сървър“ поотделно. Само си представете, че sphinx е нещо като postgres, явно не се свързвате с mysql и очаквате да можете да стартирате postgresql.

Има обаче SphinxSE - който е фалшива машина за съхранение на mysql. Инсталирате го в mysql и след това можете да създадете таблица с помощта на този двигател. След това изпълнявате mysql заявки срещу тази таблица, под капака има контакти работещ sphinx-сървър. Така че за mysql изглежда като таблица, която съдържа данни, това е най-полезно, защото след това може да „съедини“ тази таблица за търсене с оригиналната таблица с данни, за да получите резултати и оригиналните данни в една mysql заявка.

След това приложението не трябва да се свързва със самия sphinx. SphinxSE го прави вместо вас.

http://sphinxsearch.com/docs/current.html#sphinxse

Не. Вие запазвате оригиналните данни там, където са, като използвате какъвто двигател искате. Sphinx просто предоставя "индекс" - той не съхранява оригиналните данни*. Това не е база данни като такава, а само осигурява бързо търсене със силно оптимизирано индексиране.

По принцип вие питате sphinx за уникалните идентификатори на документи, отговарящи на определена заявка. След това използвайте тези идентификатори, за да търсите данните. SphinxAPI, sphinxSE и sphinxQL са само три различни механизма за извършване на това.

Не. Едно копие на sphinx може да хоства много индекси. И един индекс може да има много източници. Така че можете просто да създадете един индекс на таблица. Или ако искате да ги търсите главно заедно, можете просто да създадете един обединен индекс.

--** Редактирайте, за да отговорите на въпроса в коментарите:**

Вероятно ще дефинирате един сфинкс индекс на таблица. Така че ще ви трябва двойка източник/индекс за всяка таблица. (освен ако не искате да индексирате всички таблици в един индекс, което също е възможно.

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

Не, не е прокси.

По принцип да. Клиентът ще се свърже с него по същия начин, по който се свързва с mysql сървър.

Не, невъзможно. Свържете се с mysql-сървър, за да изпълнявате mysql заявки. Свържете се с searchd, за да изпълнявате sphinxQL заявки.

Две връзки, по една на сървър.

не знам Може да е проблем със защитната стена.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql - група, но показва всички редове на колона

  2. Django зададе Storage Engine &Charset по подразбиране

  3. Интелигентна MySQL GROUP BY за потоци от дейности

  4. Създаване на курсор с Dynamic SQL в MySQL

  5. Има ли начин в SQL (MySQL) да се направи кръгова система ORDER BY в определено поле?