Comment faire la recherche plein texte en utilisant Grails Searchable Plugin insensible aux accents?Recherche insensible à l'accent dans Grails
6
A
Répondre
5
J'ai résolu ce problème avec l'aide de Peter Ledbrook's post, mais un peu d'effort était nécessaire:
Depuis le dernier plug-in utilise interrogeable Lucene 2.4.1 qui ne contient pas ASCIIFoldingFilter (disponible depuis 2.9.0) et ne pas ISOLatin1AccentFilter prendre en charge plusieurs langues que j'ai créé un filtre personnalisé pour 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
}
}
et fournisseur de filtre correspondant:
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)
}
}
Maintenant, tout ce que vous devez faire est d'enregistrer ce fournisseur de filtre dans la configuration du plug-in interrogeable (Grails-app/conf/Searchable.groovy):
compassSettings = [
'compass.engine.analyzer.default.filters': 'stripAccents',
'compass.engine.analyzer.search.filters': 'stripAccents',
'compass.engine.analyzerfilter.stripAccents.type': 'StripAccentsFilterProvider'
]
Questions connexes
- 1. Recherche insensible à la casse dans les grails
- 2. Insensible Accent Recherche dans Grails - Créer des critères
- 3. Recherche insensible à la casse avec $ dans
- 4. Recherche insensible à la ponctuation dans mySQL
- 5. Recherche insensible à la casse dans Mongo
- 6. Connexion insensible à la casse dans Grails avec acegi
- 7. recherche insensible à la casse en php
- 8. Word VBA: recherche insensible à la casse
- 9. Mysql FullText Recherche insensible à la casse
- 10. recherche insensible à la casse de MySQL?
- 11. Recherche de chaîne insensible à la casse
- 12. recherche LDAP insensible à la casse
- 13. Recherche de dictionnaire insensible à la casse?
- 14. Recherche de tableau insensible à la casse
- 15. tableau insensible à la casse recherche
- 16. Hiberate: HQL Case Insensible recherche
- 17. rails - Recherche Insensible Condition cas
- 18. MYSQL UTF8 Accents insensible recherche
- 19. Recherche insensible à la casse d'une liste dans R
- 20. Recherche insensible à la casse dans Java DB (Derby)
- 21. Recherche insensible à la casse dans un tableau Excel
- 22. vb.net - recherche sensible à la casse/insensible dans une chaîne
- 23. Case insensible à la recherche de mots dans mongoid
- 24. Grails recherche recherche BigDecimal gamme
- 25. insensible à la casse dans searchlogic
- 26. Postgres cas insensible recherche avec Rails
- 27. Sqlite3 insensible aux diacritiques iphone de recherche
- 28. Effectuer une recherche fulltext insensible à l'accent MySQL
- 29. vim + CtrlP plugin - recherche insensible à la casse?
- 30. La recherche insensible à la casse sur Sybase