Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apakah pembaruan otomatis Sphinx adalah indeks ketika Anda menambahkan data ke SQL Anda?

Jawabannya tidak dan Anda perlu memberi tahu sphinx untuk mengindeks ulang db Anda.

Ada beberapa langkah dan persyaratan yang perlu Anda ketahui:

  1. Persyaratan utama dan delta
  2. Pertama dijalankan, Anda perlu mengindeks indeks utama Anda.
  3. Setelah dijalankan pertama kali, Anda dapat mengindeks delta dengan memutarnya (untuk memastikan layanan berjalan dan data di web dapat digunakan pada saat itu)
  4. Sebelum melangkah lebih jauh, Anda perlu membuat tabel untuk menandai "baris terindeks terakhir" Anda. ID baris terakhir yang diindeks dapat digunakan untuk delta pengindeksan berikutnya dan menggabungkan delta menjadi utama.
  5. Anda perlu menggabungkan indeks delta Anda ke index.as utama di dalam dokumen sphinx http://sphinxsearch.com/docs/current.html#index-merging
  6. Mulai ulang layanan sphinx.

    TIPS:Buat program Anda sendiri yang dapat mengeksekusi indeks dengan menggunakan C# atau bahasa lain. Anda dapat mencoba jadwal tugas windows juga bisa.

Ini conf saya:

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. MySQL:Masukkan datetime ke bidang datetime lainnya

  2. Tidak Dapat Membuat Model Data Entitas - menggunakan MySql dan EF6

  3. Kerangka ionik dan php mysql

  4. Aplikasi pegas kehilangan koneksi ke MySql setelah 8 jam. Bagaimana cara mengkonfigurasi dengan benar?

  5. Memiliki lebih dari satu Peningkatan Otomatis Per Tabel