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

Автоматичната актуализация на Sphinx е индексна ли, когато добавяте данни към вашия SQL?

Отговорът е не и трябва да кажете на sphinx да преиндексира вашата база данни.

Има някои стъпки и изисквания, които трябва да знаете:

  1. Главният и делта са задължителни
  2. Първо стартиране трябва да индексирате основния си индекс.
  3. След първото стартиране можете да индексирате делта, като я завъртите (за да сте сигурни, че услугата работи и данните в мрежата могат да се използват по това време)
  4. Преди да преминете по-нататък, трябва да създадете таблица, за да маркирате вашите „последни индексирани редове“. ИД на последния индексиран ред може да се използва за следващата делта на индексиране и сливане на делта в основната.
  5. Трябва да обедините своя делта индекс с главния index.as вътре в документите на сфинкса http://sphinxsearch.com/docs/current.html#index-merging
  6. Рестартирайте услугата sphinx.

    СЪВЕТИ:Създайте своя собствена програма, която може да изпълнява индекса, като използвате C# или други езици. Можете също да опитате графика на задачите на Windows.

Ето моята конфигурация:

source Main
{
type            = mysql

sql_host        = localhost
sql_user        = root
sql_pass        = password
sql_db          = table1
sql_port        = 3306  # optional, default is 3306
sql_query_pre = REPLACE INTO table1.sph_counter SELECT 1, MAX(PageID) FROM table1.pages;
sql_query       = \
    SELECT  pd.`PageID`, pd.Status from table1.pages pd
    WHERE pd.PageID>=$start AND pd.PageID<=$end \
    GROUP BY pd.`PageID`

sql_attr_uint       = Status

sql_query_info      = SELECT * FROM table1.`pages` pd WHERE pd.`PageID`=$id
sql_query_range     = SELECT MIN(PageID),MAX(PageID)\
              FROM tabl1.`pages`
sql_range_step      = 1000000
}


source Delta : Main
{
sql_query_pre = SET NAMES utf8

sql_query = \
    SELECT  PageID, Status from pages \
    WHERE PageID>=$start AND PageID<=$end 

sql_attr_uint       = Status

sql_query_info      = SELECT * FROM table1.`pages` pd WHERE pd.`PageID`=$id
sql_query_range     = SELECT (SELECT MaxDoc FROM table1.sph_counter WHERE ID = 1) MinDoc,MAX(PageID) FROM table1.`pages`;
sql_range_step      = 1000000
}


index Main
{
source          = Main
path            = C:/sphinx/data/Main
docinfo         = extern
charset_type        = utf-8
}


index Delta : Main
{
    source = Delta
path = C:/sphinx/data/Delta
charset_type = utf-8
}


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

  2. MySQL външен ключ за разрешаване на NULL?

  3. Намалете дневната таблица за състоянието, за да съдържа само промени в състоянието

  4. В определени случаи между оператора липсват индекси

  5. Близо търсене на местоположение в Google Maps, PHP и MySQL