Apache Lucene für Volltextsuche in JStore-ECommerce integriert
Heute stellen wir Ihnen die integrierte Volltextsuchmaschine des JStore-Ecommerce Systems vor.
Gerade die Volltextsuche ist ein wichtiger Garant für die Akzeptanz eines Shopsystems.
Fünf wesentliche Faktoren zur Volltextsuche standen auf der Projektliste:
1. Die Volltextsuche darf die Datenbank Performance nicht wesentlich beeinflußen bzw. belasten
2. Der potentielle Kunde sollte möglichst schnell an die gewünschten Suchtreffer gelangen und keine lange Wartezeiten haben.
3. Der potentielle Kunde sollte möglichst hochwertige Suchtreffer erhalten, mit der Möglichkeit unterschiedliche Abfragemethotiken zu verwenden (AND/OR, +/-, Fuzzy Search usw.)
4. Die Volltextsuche sollte keine externe Lösung sein, sondern in das Shopsystem, in die Java Servlet Umgebung, integriert sein.
5. Die Möglichkeit mehrere Indixes anzulegen (jeder Store sollte seinen eigenen Index haben, eigene Indexe für Produkte / Hilfe).
Die Entscheidung viel auf Apache Lucene. Apache Lucene besteht aus einer robusten und praxiserprobten Java API die genau unseren Vorstellungen entspricht.
Alle o.g. Punkte wurden mithilfe von Apache Lucene realisiert.
Die Trefferergebnisse haben wir ähnlich aufgebaut wie ein Trefferresultat bekannter Suchmaschinen, und nicht wie eine typische Produktlistung.
Wir denken der Suchende hat sich an diesen Standard gewöhnt und wir wollten das genau so beibehalten.
Ein Scoring des Suchtreffers bewertet den Treffererfolg anhand des Suchwortes.
Die Trefferresultate der Volltextsuche werden durch verwandte Suchbegriffe erweitert.
Im BackOffice Bereich können Sie Wörter pflegen die die Suche nach einem bestimmten Produkt unterstützen sollen.
Wenn z.B. jemand nach Gametimecode sucht und Game Time Card eingibt (es gibt viele Produkte die unterschiedlich geschrieben werden bzw. unterschiedlich heißen, aber dennoch das gleiche sind), dann wird ein Suchlink mit dem Begriff Gametimecode im Trefferresultat angezeigt.
Die verwandten Suchbegriffe können beliebiger Anzahl sein.
In JStore-ECommerce werden u.a. folgende Produktfelder indexiert (d.h. die Volltexsuche sucht über die u.g. internen Datenfelder):
- Artikelnummer
- Produkt Titel
- Inhalt
- URL
- Meta Keywords und Meta Description Tags
- Hersteller
- Produktklassifizierung
- Zugewiesene Produkt Tags
Technische Original Beschreibung über Apache Lucene
Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.
Apache Lucene is an open source project available for free download. Please use the links on the left to access Lucene.
Features
Lucene offers powerful features through a simple API:
Scalable, High-Performance Indexing
- over 20MB/minute on Pentium M 1.5GHz
- small RAM requirements — only 1MB heap
- incremental indexing as fast as batch indexing
- index size roughly 20-30% the size of text indexed
Powerful, Accurate and Efficient Search Algorithms
- ranked searching — best results returned first
- many powerful query types: phrase queries, wildcard queries, proximity queries, range queries and more
- fielded searching (e.g., title, author, contents)
- date-range searching
- sorting by any field
- multiple-index searching with merged results
- allows simultaneous update and searching
Cross-Platform Solution
- Available as Open Source software under the Apache License which lets you use Lucene in both commercial and Open Source programs
- 100%-pure Java
- Implementations in other programming languages available that are index-compatible
Letzte Kommentare