sql >> Database teknologi >  >> RDS >> Mysql

Indekser Sphinx automatisk opdatering, når du tilføjer data til din SQL?

Svaret er nej, og du skal bede Sphinx om at genindeksere din db.

Der er nogle trin og krav, som du skal kende:

  1. Main og delta er et krav
  2. Første kørsel skal du indeksere dit hovedindeks.
  3. Efter den første kørsel kan du indeksere delta ved at rotere den (for at sikre, at tjenesten kører, og at data på nettet kan bruges på det tidspunkt)
  4. Før du går videre, skal du oprette en tabel for at markere dine "sidste indekserede rækker". Det sidste indekserede række-id kunne bruges til det næste indekseringsdelta og flette delta til hoved.
  5. Du skal flette dit delta-indeks til hovedindekset.as inde i sphinx-dokumenterne http://sphinxsearch.com/docs/current.html#index-merging
  6. Genstart sphinx-tjenesten.

    TIPS:Lav dit eget program, der kan udføre indekset ved at bruge C# eller andre sprog. Du kan prøve opgaveplanen for Windows også.

Her er min 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. Sådan tilføjes et logo til en formularhoved i Microsoft Access

  2. Giver understregninger i en MySQL-tabelnavne problemer?

  3. Venstre deltagelse ved hjælp af dvalekriterier

  4. Yii CDbConnection kunne ikke åbne DB-forbindelsen:kunne ikke finde driver med google cloud sql