sql >> Databáze >  >> RDS >> Mysql

Je automatická aktualizace Sphinx indexem, když přidáte data do svého SQL?

Odpověď je ne a musíte říct sphinx, aby reindexovala vaši db.

Existuje několik kroků a požadavků, které musíte znát:

  1. Hlavní a delta jsou požadavkem
  2. Při prvním spuštění musíte indexovat svůj hlavní index.
  3. Po prvním spuštění můžete indexovat delta jeho otočením (abyste se ujistili, že služba běží a data na webu lze v daný okamžik použít)
  4. Než přejdete k dalšímu kroku, musíte vytvořit tabulku pro označení „posledních indexovaných řádků“. ID posledního indexovaného řádku lze použít pro další indexování rozdílu a sloučení rozdílu do hlavního.
  5. Musíte sloučit svůj delta index s hlavním indexem.as uvnitř dokumentů sfingy http://sphinxsearch.com/docs/current.html#index-merging
  6. Restartujte službu sfingy.

    TIPY:Vytvořte si svůj vlastní program, který dokáže spustit index pomocí C# nebo jiných jazyků. Můžete také zkusit plán úloh systému Windows.

Tady je moje konf.:

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. jak vložit video do kódu laravel

  2. Hibernate odesílání nadbytečných dotazů do databáze

  3. PHP/MySQL – zahrnout množná čísla, ale vyloučit singuláry

  4. 6 způsobů, jak odstranit duplicitní řádky, které mají primární klíč v SQLite