Jak wykonać wyszukiwanie pełnotekstowe z użyciem niewrażliwego akcentu Grails Searchable Plugin?Wyszukiwanie niewrażliwe na akcelerację w Grails
6
A
Odpowiedz
5
Mam rozwiązać ten problem z pomocą Peter Ledbrook's post jednak niektóre wysiłek był potrzebny:
Od najnowszą wtyczkę przeszukiwania używa Lucene 2.4.1, która nie zawiera ASCIIFoldingFilter (dostępna od 2.9.0) i nie ISOLatin1AccentFilter wspierać wiele języków stworzyłem własny filtr dla stripping accents:
import java.text.Normalizer
import org.apache.lucene.analysis.Token
import org.apache.lucene.analysis.TokenFilter
import org.apache.lucene.analysis.TokenStream
class StripAccentsFilter extends TokenFilter {
StripAccentsFilter(TokenStream input) {
super(input)
}
public final Token next(Token reusableToken) {
assert reusableToken
Token nextToken = input.next(reusableToken)
if (nextToken) {
nextToken.setTermBuffer(Normalizer.normalize(nextToken.termBuffer() as String, Normalizer.Form.NFD)
.replaceAll("\\p{InCombiningDiacriticalMarks}+", ""))
return nextToken
}
return null
}
}
i odpowiedni filtr dostawca:
import org.apache.lucene.analysis.TokenStream
import org.compass.core.config.CompassSettings
import org.compass.core.lucene.engine.analyzer.LuceneAnalyzerTokenFilterProvider
class StripAccentsFilterProvider implements LuceneAnalyzerTokenFilterProvider {
public void configure(CompassSettings paramCompassSettings) {
}
public TokenStream createTokenFilter(TokenStream paramTokenStream) {
return new StripAccentsFilter(paramTokenStream)
}
}
Teraz wszystko, co musisz zrobić, to zarejestrować tego dostawcę filtra w konfiguracji wtyczki przeszukiwania (grails-app/conf/Searchable.groovy):
compassSettings = [
'compass.engine.analyzer.default.filters': 'stripAccents',
'compass.engine.analyzer.search.filters': 'stripAccents',
'compass.engine.analyzerfilter.stripAccents.type': 'StripAccentsFilterProvider'
]
Powiązane problemy
- 1. Wyszukiwanie niewrażliwe na wielkość liter w Mongo
- 2. Wyszukiwanie niewrażliwe na akcent w RadComboBox
- 3. Wyszukiwanie niewrażliwe na wielkość liter MySQL na polu varbinary?
- 4. Wyszukiwanie niewrażliwe na wielkość liter przy użyciu Hibernate
- 5. JavaScript: niewrażliwe na wielkość liter
- 6. Znajdź wyszukiwania niewrażliwe na wielkość liter w linii
- 7. ORACLE 11g niewrażliwe na wielkość domyślnie
- 8. Niewrażliwe na wielkość liter JFlex regex
- 9. Adresy niewrażliwe na wielkość liter dla Django?
- 10. Wybrane opcje niewrażliwe na wielkość liter
- 11. Uruchamianie kwerendy niewrażliwe na wielkość liter
- 12. JavaScript zawiera przypadek niewrażliwe
- 13. case-niewrażliwe array_unique
- 14. Sprawa Niewrażliwe wyszukiwania/zapytania
- 15. NSMutableArray Sortowanie - sprawa niewrażliwe
- 16. Sprawa Nieczułe wyszukiwanie z $ in
- 17. Wyszukiwanie $ na ObjectId's w tablicy
- 18. Dopasowywanie niewrażliwe na wielkość znaków w języku Marpa
- 19. Jak przeprowadzić sortowanie niewrażliwe na wielkość liter w JavaScript?
- 20. Niewrażliwe na przypadki unikalne elementy tablicy w Perlu
- 21. Niewrażliwe na wielkość znaków Charfield w modelach django
- 22. Case wrażliwe i niewrażliwe jak w SQLite
- 23. Grails: poziom Enterprise Grails
- 24. Wyszukiwanie punktu na linii
- 25. Wyszukiwanie kodu na github.com
- 26. Grails: Alternatives to Grails Doc?
- 27. Jak włączyć autouzupełnianie niewrażliwe na wielkość dla NSComboBox?
- 28. JPA2: Niewrażliwe na wielkość liter jak dopasowanie wszędzie
- 29. Jak mogę uzyskać Browser.text.include? być niewrażliwe na wielkość liter?
- 30. sortowanie niewrażliwe na wielkość liter przy użyciu danych sprężystych