Ich bin auf der Anwendung arbeiten bei http://demos.zatechcorp.com/codeigniter/Zend Framework Lucene Boolean/„Google“ -ähnlichen Suche
In der aktuellen Fassung auf meinem Rechner läuft, ich die ZendFramework innerhalb Codeigniter geladen und erzeugt einen Index, wie diese :
// ... Some code that loads all the markets
foreach ($markets as $market)
{
$doc = new Zend_Search_Lucene_Document();
// Id for retrieval
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('id', $market->id));
// Store document URL to identify it in search result.
$doc->addField(Zend_Search_Lucene_Field::Text('url', $market->permalink));
// Index document content
$doc->addField(Zend_Search_Lucene_Field::UnStored('contents', $market->description));
// Title
$doc->addField(Zend_Search_Lucene_Field::Text('title', $market->title));
// Phone
$doc->addField(Zend_Search_Lucene_Field::Keyword('phone', $market->phone));
// Fax
$doc->addField(Zend_Search_Lucene_Field::Keyword('fax', $market->fax));
// Street
$doc->addField(Zend_Search_Lucene_Field::Keyword('street', $market->street));
// City
$doc->addField(Zend_Search_Lucene_Field::Keyword('city', $market->city));
// State
$doc->addField(Zend_Search_Lucene_Field::Keyword('state', $market->state));
// Zip
$doc->addField(Zend_Search_Lucene_Field::Keyword('zip', $market->zip));
// Type
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('type', 'market'));
// Store Document
$index->addDocument($doc);
}
In meiner Suche ich dies tun:
$hits = $index->find($q);
Dies funktioniert mit einfachen Worten, aber wenn ich eine Suche wie "Sheba Foods" tun wollen (Zitate enthalten d), es gibt ein Ergebnis zurück, aber das falsche, das nicht einmal das Wort "Sheba" hat.
Ich habe mich wegen der offensichtlichen Probleme von der MySQL-Volltextsuche entfernt und kann damit keine Fortschritte machen.
Ich habe die Zend_Search_Lucene_Search_QueryParser :: parse() -Methode betrachtet. Liegt die Antwort in dieser Methode?
"ID" ist die ID des Dokuments im Index gespeichert. du * kannst * id verwenden, du musst es nur über getDocument() -> id referenzieren. – typeoneerror