Het antwoord is nee en je moet sphinx vertellen om je db opnieuw te indexeren.
Er zijn enkele stappen en vereisten die u moet kennen:
- Hoofd en delta zijn vereiste
- Eerste keer moet je je hoofdindex indexeren.
- Na de eerste run kunt u delta indexeren door deze te roteren (om er zeker van te zijn dat de service actief is en dat de gegevens op internet op dat moment kunnen worden gebruikt)
- Voordat u verder gaat, moet u een tabel maken om uw "laatst geïndexeerde rijen" te markeren. De ID van de laatst geïndexeerde rijen kan worden gebruikt voor de volgende indexeringsdelta en voor het samenvoegen van delta in main.
- U moet uw delta-index samenvoegen met de hoofdindex.as in de sphinx-documenten http://sphinxsearch.com/docs/current.html#index-merging
-
Start de sfinx-service opnieuw.
TIPS:Maak je eigen programma dat de index kan uitvoeren met behulp van C# of andere talen. U kunt het taakschema van Windows ook proberen.
Hier is mijn conf:
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
}