Sphinx-Suche: charset table Schwierigkeiten

Ich bin zu verlieren mein Geist auf diese zwei Tage jetzt...

Möchte ich die slowenischen Buchstaben in sphinx-Suche, die alle englische + č ž š (und nur im Falle ć)

Ich suchte alle über das Netz, um die richtige chars, aber ich fand hocken...

also habe ich beschlossen, meine eigene Schritt für Schritt...

dies ist meine index

index classifieds
{
    source          = classifieds_src
    path            = c:\Sphinx\data\classifieds
    docinfo         = extern

    min_infix_len       = 2
    infix_fields        = title,keywords,summary,text
    expand_keywords     = 1
    enable_star     = 1


    charset_type        = utf-8
    charset_table = 0..9, a..z, _, A..Z->a..z,-, U+002C, \
    U+010C->U+010D, U+0106->U+0107, U+0160->U+0161, U+017D->U+017E, \
    U+010D->c,U+0107->c, U+0161->s, U+017E->z, \
    U+010D, U+0107, U+0161, U+017E
}

wo ich gemappt großen Č, Ć Š Ž um Ihre Kleinbuchstaben Kollegen, und fügte hinzu, Zuordnung von
č in c, ć c, š in s und ž in die z
und schließlich fügte ich diese vier chars auf dem Tisch....

diese sind meine Kleinanzeigen Titel:

t1: HP USB optična miška za prenosnik RH304
t2: Čiška PCplus MO-U033+F2 (optična, brezžična, PS/2)
t3: Miška Logitech optična Nano M235 siva

db-Kodierung: utf8_general_ci
Tabelle-Kodierung: utf8_general_ci
Titel-Feld-Kodierung: utf8_general_ci

test-Fall:

$testcase = array(
        "miška",
        "mi*ka",
        "Čiška",
        "čiška",
        "miska",
        "usb prenosnik",
        "prenosnik miska",
        "miška usb"
);

//api settings:

$this->sphinx->SetArrayResult(true);
$this->sphinx->setLimits(0, 100);
$this->sphinx->setMatchMode(SPH_MATCH_EXTENDED2);
$this->sphinx->SetSortMode(SPH_SORT_RELEVANCE, '@weight DESC');
$this->sphinx->SetRankingMode(SPH_RANK_PROXIMITY_BM25);
$this->sphinx->SetFieldWeights(array("title"=>100, "keywords"=>80, "summary"=>60,
"text"=>20, "slug"=>10));

- und schließlich der test-Ergebnisse:

Schlagwort (Gesamt /total_found)
Worte

miška     (0/0)

Array
(
    [*miška*] => Array
        (
            [docs] => 0
            [hits] => 0
        )

    [miška] => Array
        (
            [docs] => 0
            [hits] => 0
        )

)

mi*ka     (0/0)

Array
(
    [*mi*] => Array
        (
            [docs] => 3
            [hits] => 4
        )

    [mi] => Array
        (
            [docs] => 1
            [hits] => 1
        )

    [*2aka*] => Array
        (
            [docs] => 0
            [hits] => 0
        )

    [2aka] => Array
        (
            [docs] => 0
            [hits] => 0
        )

)

Čiška     (0/0)

Array
(
    [*čiška*] => Array
        (
            [docs] => 0
            [hits] => 0
        )

    iška] => Array
        (
            [docs] => 0
            [hits] => 0
        )

)

čiška     (0/0)

Array
(
    [*čiška*] => Array
        (
            [docs] => 0
            [hits] => 0
        )

    iška] => Array
        (
            [docs] => 0
            [hits] => 0
        )

)

miska     (0/0)

Array
(
    [*miska*] => Array
        (
            [docs] => 0
            [hits] => 0
        )

    [miska] => Array
        (
            [docs] => 0
            [hits] => 0
        )

)

usb prenosnik     (1/1)

Array
(
    [*usb*] => Array
        (
            [docs] => 1
            [hits] => 1
        )

    [usb] => Array
        (
            [docs] => 1
            [hits] => 1
        )

    [*prenosnik*] => Array
        (
            [docs] => 1
            [hits] => 1
        )

    [prenosnik] => Array
        (
            [docs] => 1
            [hits] => 1
        )

)

prenosnik miska     (0/0)

Array
(
    [*prenosnik*] => Array
        (
            [docs] => 1
            [hits] => 1
        )

    [prenosnik] => Array
        (
            [docs] => 1
            [hits] => 1
        )

    [*miska*] => Array
        (
            [docs] => 0
            [hits] => 0
        )

    [miska] => Array
        (
            [docs] => 0
            [hits] => 0
        )

)

miška usb     (0/0)

Array
(
    [*miška*] => Array
        (
            [docs] => 0
            [hits] => 0
        )

    [miška] => Array
        (
            [docs] => 0
            [hits] => 0
        )

    [*usb*] => Array
        (
            [docs] => 1
            [hits] => 1
        )

    [usb] => Array
        (
            [docs] => 1
            [hits] => 1
        )

)

Kann man deutlich sehen, bekomme ich positive Ergebnisse nur in den Abfragen ohne die slowenischen Sonderzeichen

Bitte, bitte helfen, ich bin zu verlieren mein Geist auf dieser

  • ja, Mach ich keine Unterschiede..
  • OMG!!! Ich habe es getan! [Die Antwort gefunden hier][1] [1]: ryaneby.com/2009/11/21/unicode-and-sphinx.html ich brauchte, um hinzuzufügen sql_query_pre = SET CHARACTER_SET_RESULTS=utf8 sql_query_pre = SET NAMES utf8 zu meiner Quelle definition... klar, die DB ist nicht mit Trog utf8 standardmäßig! WOOO HOOOO
  • Ich würde, aber es lässt mich nicht :S 100 Ruf benötigt... bitte postet es selbst, I;ll bestätigen
Schreibe einen Kommentar