= Hibernate Search = author: Heikki Doeleman This page describes GeoNetwork's usage of the [http://www.hibernate.org/410.html Hibernate Search] library. [[BR]] ---- === Introduction === Hibernate Search is a library that combines the strengths of full text search using [http://lucene.apache.org/java/docs/ Lucene] with [http://www.hibernate.org/ Hibernate]'s O/R mapping capabilities. Queries in Hibernate Search are expressed as Lucene queries. ---- === Directory === A Lucene index is represented by a Directory. We will use a file system directory provider to persistently store the Lucene index; and we will use an in-memory directory provider to use with unit test. ---- === Analyzer === What filters should we use in our Analyzer? What is necessary are at least: !StandardTokenizer, !StandardFilter, and !LowerCaseFilter. Will we use a !StopFilter and if so, how do we decide what (language-dependent )stopwords list to use? Do we use an NGramTokenFilter to help fuzzy searches? How is this better than using !FuzzyQuery at query time? Do we use an ISOLatin1AccentFilter to abstract over accented characters? (heikki: +1) Do we use a !PhoneticFilter? If so how does this work, with different languages and all? Do we use a !SynonymFilter? The language dependent issue is relevant here, again. Do we use a !SnowballFilter (stemming) ? Again, how will we deal with the different languages?