Jednak problem pojawił się gdy chciałem stworzyć wyszukiwarkę na stronie i skorzystałem z kohana-search który opiera się o Zend_Search_Lucene.
Operując na gotowych przykładach stworzyłem index
$data = ORM::factory('news')->find_all(); Search::instance()->build_search_index($data);
Bezproblemowo, teraz czas na wyszukiwanie:
public function action_search($q = null) { $q = $q ? $q : $_POST['q']; $news = Search::instance()->find($q); }
I też działa... ale... okazało się, że w wynikach znajduje się błędnie id newsa...
Wszystkie inne pola jak title, description itd są poprawne a id nie.
A to metoda modelu ORM odpowiedzialna za indeksowanie:
public function get_indexable_fields() { $fields[] = new Search_Field('title', Searchable::TEXT); $fields[] = new Search_Field('description', Searchable::TEXT); $fields[] = new Search_Field('keywords', Searchable::TEXT); //$fields[] = new Search_Field('content', Searchable::UNSTORED, Searchable::DECODE_HTML); $fields[] = new Search_Field('id', Searchable::UNINDEXED); // ... why? $fields[] = new Search_Field('date', Searchable::UNINDEXED); $fields[] = new Search_Field('thumb', Searchable::UNINDEXED); $fields[] = new Search_Field('comments_count', Searchable::UNINDEXED); return $fields; }
A w widoku mam normalną pętlę:
foreach($news as $row) { }
I nie mam pojęcia dlaczego tak się dzieje... Z niecierpliwością czekam na odpowiedź.
