Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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

Předmět Autor Datum
Máš nastavený min_prefix_len na 3, takže pre "So" to nič nenájde, lebo to má len dva znaky. Pre "Sou… nový
los 03.03.2015 17:33
los
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… nový
n.u.r.v. 03.03.2015 19:36
n.u.r.v.
Počet položiek sa práve nemusel meniť - stačí, že tam bol nejaký UPDATE, pred ktorým ten riadok ešte… nový
los 03.03.2015 21:43
los
Ahoj, odpovím postupně: 1) ne, s DB se nehýbalo - stáhl jsem si ji z ostré DB na local - nic víc jse… nový
n.u.r.v. 03.03.2015 21:50
n.u.r.v.
tak v logu query mám toto: [Tue Mar 3 11:16:53.487 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 356 (0,5… nový
n.u.r.v. 04.03.2015 10:04
n.u.r.v.
Tak jsem se pohnul dál - zastavil jsem sphinx, smazal jsem kompletně index, spustil jsem sphinx, zai… nový
n.u.r.v. 04.03.2015 11:18
n.u.r.v.
a je to - expand_keywords - http://sphinxsearch.com/docs/current.html#conf-exp and-keywords už to f… poslední
n.u.r.v. 04.03.2015 11:33
n.u.r.v.

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é?

Ahoj, odpovím postupně:
1) ne, s DB se nehýbalo - stáhl jsem si ji z ostré DB na local - nic víc jsem s ní nedělal

2) Stáhl jsem a nainstaloval nejnovější sphinx

3) sphinx (službu) spouštím ručně, takže ano - je restartovaná každý den...

4) do logu se podívám...

Ještě mě napadlo, zda v tom roli nehraje čeština...

tak v logu query mám toto:

[Tue Mar 3 11:16:53.487 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 356 (0,500)] [souteze] [Požadavek na vyhledání...] S
[Tue Mar 3 11:16:53.550 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 356 (0,500)] [souteze] [Požadavek na vyhledání...] S
[Tue Mar 3 11:16:57.832 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 0 (0,500)] [souteze] [Požadavek na vyhledání...] So
[Tue Mar 3 11:16:59.289 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 356 (0,500)] [souteze] [Požadavek na vyhledání...] S
[Tue Mar 3 11:17:12.684 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 0 (0,500)] [souteze] [Požadavek na vyhledání...] So
[Tue Mar 3 11:17:26.766 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 0 (0,500)] [souteze] [Požadavek na vyhledání...] So
[Tue Mar 3 11:17:26.985 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 0 (0,500)] [souteze] [Požadavek na vyhledání...] Sou
[Tue Mar 3 11:17:34.766 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 358 (0,500)] [souteze] [Požadavek na vyhledání...] Sout
[Tue Mar 3 11:17:56.494 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 358 (0,500)] [souteze] [Požadavek na vyhledání...] Soutě
[Tue Mar 3 11:18:00.187 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 358 (0,500)] [souteze] [Požadavek na vyhledání...] Soutěž
[Tue Mar 3 11:18:18.754 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 8 (0,500)] [souteze] [Požadavek na vyhledání...] *těž
[Tue Mar 3 11:19:06.688 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 8 (0,500)] [souteze] [Požadavek na vyhledání...] těž
[Tue Mar 3 11:19:06.828 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 8 (0,500)] [souteze] [Požadavek na vyhledání...] *těž
[Tue Mar 3 11:19:10.429 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 8 (0,500)] [souteze] [Požadavek na vyhledání...] *tě
[Tue Mar 3 11:19:13.220 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 8 (0,500)] [souteze] [Požadavek na vyhledání...] *těž
[Tue Mar 3 11:19:14.749 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 8 (0,500)] [souteze] [Požadavek na vyhledání...] *těž
[Tue Mar 3 11:19:16.268 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 8 (0,500)] [souteze] [Požadavek na vyhledání...] *těž
[Tue Mar 3 11:19:17.290 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 0 (0,500)] [souteze] [Požadavek na vyhledání...] *ěž
[Tue Mar 3 11:19:18.133 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 0 (0,500)] [souteze] [Požadavek na vyhledání...] ěž
[Tue Mar 3 11:19:20.542 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 8 (0,500)] [souteze] [Požadavek na vyhledání...] těž
[Tue Mar 3 11:19:22.197 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 8 (0,500)] [souteze] [Požadavek na vyhledání...] těž
[Tue Mar 3 11:19:22.861 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 6 (0,500)] [souteze] [Požadavek na vyhledání...] stěž
[Tue Mar 3 11:19:23.125 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 0 (0,500)] [souteze] [Požadavek na vyhledání...] sotěž
[Tue Mar 3 11:19:24.333 2015] 0.000 sec 0.000 sec [ext2/0/attr+ 358 (0,500)] [souteze] [Požadavek na vyhledání...] soutěž
[Tue Mar 3 13:14:23.139 2015] 0.000 sec 0.000 sec [ext2/0/attr- 358 (0,500)] [souteze] [Požadavek na vyhledání...] soutěž

Zpět do poradny Odpovědět na původní otázku Nahoru