

Sphinx fulltext - nenajde vše
Ahoj, zkoušíme teď nasadit sphinx fulltext a +- to funguje, ale mám tu jeden zvláštní problém a nevím co ho způsobuje:
Řekněme, že v DB vyhledávám v tabulce soutěží a řekněme že prohledávám sloupec TITLE
Každá soutěž má titulek ve formátu: "Soutěž s..." nebo "Soutěž o..." apod...
Když dám v mysql tento dotaz:
SELECT id FROM souteze WHERE title LIKE '%Sou%'
nebo
SELECT id FROM souteze WHERE title LIKE '%Soutěž%'
tak dostanu 359 výsledků - což odpovídá všem záznamům v tabulce - protože všechny záznamy mají v title slovo Soutěž
Když ale zkusím vyhledání přes sphinx, tak mi vrací:
dotaz - počet nalezených:
S - 356
So - 0
Sou - 0
Sout - 358 (ne 359)
Soutě - 358
Soutěž - 358
Dotazy:
1) proč to vrací uvedený počty nalezených záznamů? Hlavně proč to nenajde nic při zadání So, sou
2) proč při vyhledání slova Soutěž to najde o 1 záznam méně?
Nastavení Sphinx:
source souteze
{
type = mysql
sql_host = localhost
sql_user = xxx
sql_pass = yyy
sql_db = souteze
sql_port = 3306 # optional, default is 3306
sql_query_pre = SET NAMES utf8
sql_query = \
SELECT id, title, UNIX_TIMESTAMP(date) date \
FROM souteze
sql_field_string = title
sql_attr_timestamp = date
}
index souteze
{
source = souteze
min_prefix_len = 3
path = C:/Sphinx/data/souteze
}
Díky
Máš nastavený min_prefix_len na 3, takže pre "So" to nič nenájde, lebo to má len dva znaky. Pre "Sou" by to ale už niečo malo nájsť. Z tých výsledkov to vyzerá tak, ako keby si mal nastavené min_prefix_len na 4 - nemenil si náhodou toto nastavenie a nezabudol si potom prebuildiť index?
Rozdiel v počte záznamov môže byť spôsobený tým, že záznam bol v databáze aktualizovaný po tom, ako bol zaindexovaný.
P.S.: Sphinx som nepoužíval, vychádzam z dokumentácie.
Ahoj, také jsem si myslel že to je min_prefix_len, jenže jsem ho zkoušel měnit 0-4 a vůbec to nemělo vliv... po každé změně konfigurace jsem provedl zaindexování příkazem indexer --all --rotate
Počet položek v DB se neměnil - je to moje DB na mém localu (sphinx také testuji na localu)
Počet položiek sa práve nemusel meniť - stačí, že tam bol nejaký UPDATE, pred ktorým ten riadok ešte neobsahoval slovo Soutěž.
Máš aktuálnu verziu Sphinx-u? Vyskúšal si ho reštartovať? Ináč to, čo robíš, by malo podľa dokumentácie stačiť. Nie je tam nejaký log súbor, v ktorom by mohlo byť niečo zaujímavé?
tak v logu query mám toto:
Tak jsem se pohnul dál - zastavil jsem sphinx, smazal jsem kompletně index, spustil jsem sphinx, zaindexoval a restartoval sphinx - teď už to něco dělá:
když dám vyhledat so* , tak to najde vše.. teď ještě aby to hledalo bez hvězdičky...
a je to - expand_keywords - http://sphinxsearch.com/docs/current.html#conf-exp and-keywords
už to funguje... jdu testovat