2010-11-15 17 views
9

Jest konstruktorem Lucene polu:atrybut sklep z polem Lucene

Field(String name, String value, Store store, Index index) 

Na przykład można utworzyć nowe pole przez:

Field f1 = new Field("text", "The text content", Field.Store.YES, Field.Index.ANALYZED); 

Nie jestem dokładnie pewien znaczenia czwartego parametru: Index

Jeśli ustawię go na Index.No, czy konieczne jest dodanie tego pola jako "pola"?

Ponieważ moim zdaniem, po atrybutem jest zadeklarowana jako pole powinno być indeksowane, jeśli nie to dlaczego zadeklarować ją jako pole?

Jaka jest różnica między kwerendy i szukać?

Odpowiedz

19

Przechowywane pola są co jest zwracany, gdy ask Lucene to give you back a document. Posiadają oryginalną wartość pola bez analizy. Możesz ich użyć do przedstawienia dokumentu użytkownikom (niekoniecznie wszystkim polom).

Przechowywane pola, które nie są indeksowane są przydatne do przechowywania metadanych o dokumencie, że użytkownik nie będzie wykorzystywał do kwerendy indeksu. Przykładem może być identyfikator bazy danych, z którego pochodzi dokument. Ten identyfikator nigdy nie będzie używany przez użytkownika, ponieważ nie będzie o nim wiedział, więc indeksowanie go jest zasadniczo bezużyteczne. Ale jeśli go przechowujesz, możesz go użyć do zebrania dodatkowych informacji z db w czasie wykonywania.

Różnica między kwerendy i poszukiwania jest raczej subiektywna. Dla mnie wyszukiwanie jest tak naprawdę ogólnym aktem wyszukiwania w indeksie, podczas gdy zapytanie to rzeczywiste query string used to search the index.

18

Jak wspomniano w Lucene FAQ:

Jaka jest różnica między Przechowywane, tokenized, indeksowania i wektor?

  • przechowywane = jak jest wartość zapamiętana w Lucene
  • tokenized = pole jest analizowana przy użyciu określonego Analyser - żetony emitowane są indeksowane
  • indeksowane = tekst (albo jak jest z kluczowych pola lub tokeny z tokenizowanych pól) jest możliwe do przeszukiwania (odwrócone)
  • Widmowa = częstotliwość terminów na dokument jest przechowywana w indeksie w sposób łatwy do odzyskania.

Można tylko spis treści bez sklepu to pole, pole to również przeszukiwać, po prostu nie może podświetlić wynik, ponieważ kulminacyjnym wymaga oryginalną treść wiadomości, która ma przechowywać.

+0

Więc dlaczego jeden utworzyć pole bez indeksowania go? – hguser

+4

Na przykład przechowuj postid, indeksuj zawartość postu, następnie możesz załadować te posty postid po szukaniu lucene. – Robin