[Rubyonrails-ug] Falsche ThinkingSphinx-Suchergebisse bei Suche nach Begriffen mit Umlauten

2011-07-02 Diskussionsfäden Torsten Flammiger
Hallo zusammen,

vielleicht hat das schon mal jemand beobachtet:
(Rails 3.0.9, thinking-sphinx 2.0.3, Sphinx 0.9.9)

Alles funktioniert prima bis ich nach Begriffen suche,
die Umlaute enthalten. Dann werden Einträge aufgelistet,
die den Suchbegriff nicht enthalten!

Ersetze ich im betreffenden Text den Umlaut durch seine
Umschreibung verschwindet auch genau dieser Eintrag aus
den Suchergebnissen.

Hier ein Auszug aus der der Konfigurationsdatei für den
Index des Models EVENT. Es werden noch 2 weitere Models
indiziert - die Einstellungen sind identisch.

config/development.sphinx.conf:


index event_core
{
  source = event_core_0
  path = 'pfad zum index auf der Platte'
  charset_type = utf-8
}

und im zugrundeliegenden Model event.rb:


define_index do
indexes :name, :as = :title, :sortable = true
indexes :description, :as = :body
indexes :created_at, :sortable = true
has created_at
end

Da nicht jedes der Models die gleichen zu indizierenden
Spaltennamen verwendet, habe ich dort wo notwendig Instanzmethoden
erstellt, die einfach so lauten wie der Indexname. Somit kann
ich später sorgenfrei auf immer die gleichen Eigenschaften des
gefundenen Objektes zugreifen, ohne mir Gedanken zu machen,
um welches Objekt es sich wirklich handelt: alle besitzen die
Eigenschaften 'title' und 'description'

Kennt jemand das Problem und hat (eventuell) auch
eine Lösung?

Gruß
Torsten
___
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug


Re: [Rubyonrails-ug] Falsche ThinkingSphinx-Suchergebisse bei Suche nach Begriffen mit Umlauten

2011-07-02 Diskussionsfäden Torsten Flammiger
On Sat, 02 Jul 2011 15:48 +0200, Michael Schuerig
michael.li...@schuerig.de wrote:
 On Saturday 02 July 2011, Torsten Flammiger wrote:
  vielleicht hat das schon mal jemand beobachtet:
  (Rails 3.0.9, thinking-sphinx 2.0.3, Sphinx 0.9.9)
  
  Alles funktioniert prima bis ich nach Begriffen suche,
  die Umlaute enthalten. Dann werden Einträge aufgelistet,
  die den Suchbegriff nicht enthalten!
 
 Ich kenne das Problem nicht, es ist aber auch schon eine Weile her, dass 
 ich mit TS gearbeitet habe und damals habe ich Umlaute nicht explizit 
 getestet. Meine starke Vermutung ist, dass du ein Problem mit der 
 Zeichenkodierung hast. Arbeiten alle Teile -- App, Datenbank, (Thinking) 
 Sphinx -- mit der selben Kodierung? Eigentlich sollte es überall UTF-8 
 sein, ist es aber vielleicht nicht.

config/database.yml:

development:
  adapter: mysql2
  database: bks
  username: xxx
  password: xxx
  host: localhost
  encoding: utf8

In jeder der 3 konfigurierten Sourcen wird UTF-8 verwendet:
sql_query_pre = SET NAMES utf8 und
charset_type = utf-8

Seltsam ist das schon etwas. Und das es im Jahr 11 nach der
Jahrtausendwende noch immer Probleme mit Multibytezeichensätzen
gibt, verstimmt mich einigermaßen ;)

Gibt es denn vielleicht ein Alternative zu TS?
Vielleicht kann man ja die FullText-Engine von MySQL nutzen?

Gruß
Torsten
___
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug


Re: [Rubyonrails-ug] Falsche ThinkingSphinx-Suchergebisse bei Suche nach Begriffen mit Umlauten

2011-07-02 Diskussionsfäden Marco Scholl
Hi,

klar gibt es alternativen. Du verwendest am besten eine eine richtige
Datenbank wie PostgreSQL und nutzt dann

https://github.com/phatworx/phat_pgsearch

Das läuft ohne irgendwelche Hintergrund-Daemons und sonder Zeichen
gehen damit auch Problemlos.

mfg marco



Am 2. Juli 2011 16:25 schrieb Torsten Flammiger nos...@airpost.net:
 On Sat, 02 Jul 2011 15:48 +0200, Michael Schuerig
 michael.li...@schuerig.de wrote:
 On Saturday 02 July 2011, Torsten Flammiger wrote:
  vielleicht hat das schon mal jemand beobachtet:
  (Rails 3.0.9, thinking-sphinx 2.0.3, Sphinx 0.9.9)
 
  Alles funktioniert prima bis ich nach Begriffen suche,
  die Umlaute enthalten. Dann werden Einträge aufgelistet,
  die den Suchbegriff nicht enthalten!

 Ich kenne das Problem nicht, es ist aber auch schon eine Weile her, dass
 ich mit TS gearbeitet habe und damals habe ich Umlaute nicht explizit
 getestet. Meine starke Vermutung ist, dass du ein Problem mit der
 Zeichenkodierung hast. Arbeiten alle Teile -- App, Datenbank, (Thinking)
 Sphinx -- mit der selben Kodierung? Eigentlich sollte es überall UTF-8
 sein, ist es aber vielleicht nicht.

 config/database.yml:

 development:
  adapter: mysql2
  database: bks
  username: xxx
  password: xxx
  host: localhost
  encoding: utf8

 In jeder der 3 konfigurierten Sourcen wird UTF-8 verwendet:
 sql_query_pre = SET NAMES utf8 und
 charset_type = utf-8

 Seltsam ist das schon etwas. Und das es im Jahr 11 nach der
 Jahrtausendwende noch immer Probleme mit Multibytezeichensätzen
 gibt, verstimmt mich einigermaßen ;)

 Gibt es denn vielleicht ein Alternative zu TS?
 Vielleicht kann man ja die FullText-Engine von MySQL nutzen?

 Gruß
 Torsten
 ___
 rubyonrails-ug mailing list
 rubyonrails-ug@headflash.com
 http://mailman.headflash.com/listinfo/rubyonrails-ug

___
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug


Re: [Rubyonrails-ug] Falsche ThinkingSphinx-Suchergebisse bei Suche nach Begriffen mit Umlauten

2011-07-02 Diskussionsfäden Torsten Flammiger
On Sat, 02 Jul 2011 16:30 +0200, Marco Scholl
deve...@marco-scholl.de wrote:
 Hi,
 
 klar gibt es alternativen. Du verwendest am besten eine eine richtige
 Datenbank wie PostgreSQL und nutzt dann

die Möglichkeit bestände durchaus...

 https://github.com/phatworx/phat_pgsearch
 
 Das läuft ohne irgendwelche Hintergrund-Daemons und sonder Zeichen
 gehen damit auch Problemlos.

Mache ich aber trotzdem erst beim nächsten mal...

Im Moment habe ich eine Tabelle auf Volltextsuche umgestellt und da
habe ich keinerlei Problem bei der Suche nach Begriffen mit Umlauten.
Und das Ergebnis stimmt auch :)

Ich mach mich jetzt mal daran, den Rest auf Volltextsuche
umzustellen. Dann kann ich nämlich auch auf den TS-Daemon verzichten.
Eine einfache Ruby-Klasse und eine ebenso einfache Konfigdatei sollten
dann für mein kleines Projekt genügen.

Torsten
___
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug


Re: [Rubyonrails-ug] Falsche ThinkingSphinx-Suchergebisse bei Suche nach Begriffen mit Umlauten

2011-07-02 Diskussionsfäden Torsten Flammiger
On Sat, 02 Jul 2011 13:30 +0200, Torsten Flammiger
nos...@airpost.net wrote:
 Hallo zusammen,
 
 vielleicht hat das schon mal jemand beobachtet:
 (Rails 3.0.9, thinking-sphinx 2.0.3, Sphinx 0.9.9)
 
 Alles funktioniert prima bis ich nach Begriffen suche,
 die Umlaute enthalten. Dann werden Einträge aufgelistet,
 die den Suchbegriff nicht enthalten!

umgestellt auf MySQL FullText erfüllt diese kleine Klasse
meine Anforderungen derzeit weitestgehend:
= https://gist.github.com/1060997

Und ich brauche keinen Sphinx-Daemon dafür! Eine simple
Migration für die Umstellung der Tabellentypen von
InnoDB auf MyISAM plus anlegen des Indexes tut es.

Danke für die Anregungen
Torsten
___
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug


Re: [Rubyonrails-ug] Falsche ThinkingSphinx-Suchergebisse bei Suche nach Begriffen mit Umlauten

2011-07-02 Diskussionsfäden Simon Hürlimann

Hallo Torsten

Schön, dass du 'ne Lösung gefunden hast:-)

Manchmal ist Sphinx aber dann doch die bessere Lösung, evtl. magst du 
daher noch folgendes versuchen: Mit 'charset_table' ist es möglich A in 
der Suche mit Ä, Ã, etc. gleichzusetzen. Das hilft evtl.


Ein Beispiel ist unter 
https://github.com/huerlisi/katalog/blob/master/config/sphinx.yml zu 
sehen...


Viel Erfolg und schönes Wochenende
Simon

On 07/02/2011 06:17 PM, Torsten Flammiger wrote:

On Sat, 02 Jul 2011 13:30 +0200, Torsten Flammiger
nos...@airpost.net  wrote:

Hallo zusammen,

vielleicht hat das schon mal jemand beobachtet:
(Rails 3.0.9, thinking-sphinx 2.0.3, Sphinx 0.9.9)

Alles funktioniert prima bis ich nach Begriffen suche,
die Umlaute enthalten. Dann werden Einträge aufgelistet,
die den Suchbegriff nicht enthalten!


umgestellt auf MySQL FullText erfüllt diese kleine Klasse
meine Anforderungen derzeit weitestgehend:
=  https://gist.github.com/1060997

Und ich brauche keinen Sphinx-Daemon dafür! Eine simple
Migration für die Umstellung der Tabellentypen von
InnoDB auf MyISAM plus anlegen des Indexes tut es.

Danke für die Anregungen
Torsten
___
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug



--
CyT GmbH, Dorfstr. 17, CH-6300 Zug
+41 (0)41 544 47 60 i...@cyt.ch http://www.cyt.ch

attachment: simon_huerlimann.vcf___
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug


Re: [Rubyonrails-ug] Falsche ThinkingSphinx-Suchergebisse bei Suche nach Begriffen mit Umlauten

2011-07-02 Diskussionsfäden Torsten Flammiger
On Sat, 02 Jul 2011 19:35 +0200, Simon Hürlimann
simon.huerlim...@cyt.ch wrote:
 Hallo Torsten
 
 Schön, dass du 'ne Lösung gefunden hast:-)

das ist doch keine Lösung sondern ein ganz böser
(und häßlicher und ... und ... und ...) Workaround ;)

 Manchmal ist Sphinx aber dann doch die bessere Lösung, evtl. magst du 
 daher noch folgendes versuchen: Mit 'charset_table' ist es möglich A in 
 der Suche mit Ä, Ã, etc. gleichzusetzen. Das hilft evtl.

hat nichts geändert.

Die Thematik regt mich im übrigen furchtbar auf! Ich hab das ja schon
anklingen lassen: warum muss ich mich im 2. Jahrzehnt des dritten
Jahrtausends mit derartigen Dingen abmühen? Der verwendete Zeichensatz
ist sowohl der Datenbank als auch der Suchengine bekannt. Wo also liegt
das Problem - sollte man sich fragen?

Aber ich geh jetzt lieber mal vom Gas
und wünsche ein gediegenes Wochenende;)

To
___
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug


Re: [Rubyonrails-ug] Falsche ThinkingSphinx-Suchergebisse bei Suche nach Begriffen mit Umlauten

2011-07-02 Diskussionsfäden Michael Schuerig
On Saturday 02 July 2011, Torsten Flammiger wrote:
 Und ich brauche keinen Sphinx-Daemon dafür! Eine simple
 Migration für die Umstellung der Tabellentypen von
 InnoDB auf MyISAM plus anlegen des Indexes tut es.

Kannst du auf Transaktionsblöcke und einige weitere Features verzichten? 
Falls du nicht genau weißt, was du tust, lies 
http://en.wikipedia.org/wiki/MyISAM

Irgendwann hat sich das Gerücht selbständig gemacht, MySQL wäre ein 
brauchbares relationales DBMS...

Michael

-- 
Michael Schuerig
mailto:mich...@schuerig.de
http://www.schuerig.de/michael/
___
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug