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

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
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…
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…
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…
los 03.03.2015 21:43
los
Tak jsem se pohnul dál - zastavil jsem sphinx, smazal jsem kompletně index, spustil jsem sphinx, zai…
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é?

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