Elasticsearch y analizador de Porterstem
-
28-10-2019 - |
Pregunta
Estoy buscando usar ElasticSearch para proporcionar las funciones de búsqueda de nuestro sitio.
He estado experimentando con él, pero no puedo habilitar el analizador de Porterstem (para que una búsqueda de combates de peleas y peleas).
Aquí hay una caída de mi entrada.
curl -XPUT localhost:9200/local/ -d'
index :
analysis :
analyzer :
stemming :
type : custom
tokenizer : standard
filter : [standard, lowercase, stop, porterStem]
'
curl -XPUT localhost:9200/local/_mapping -d'{"properties": { "title" : { "analyzer" : "stemming", "type" : "string" }}}'
curl -XPUT localhost:9200/local/article/1 -d'{"title": "Fight for your life"}'
curl -XPUT localhost:9200/local/article/2 -d'{"title": "Fighting for your life"}'
curl -XPUT localhost:9200/local/article/3 -d'{"title": "My dad fought a dog"}'
curl -XPUT localhost:9200/local/article/4 -d'{"title": "Bruno fights Tyson tomorrow"}'
Sin embargo, ejecutar una búsqueda de 'lucha' solo coincide con la primera entrada, la que contiene el término exacto.
curl -XGET localhost:9200/local/_search?q=fight
La configuración correcta parece haberse configurado, pero no parece funcionar.
"indices" : {
"local" : {
"aliases" : [ ],
"settings" : {
"index.analysis.analyzer.stemming.type" : "custom",
"index.analysis.analyzer.stemming.tokenizer" : "standard",
"index.analysis.analyzer.stemming.filter.1" : "lowercase",
"index.analysis.analyzer.stemming.filter.0" : "standard",
"index.analysis.analyzer.stemming.filter.3" : "porterStem",
"index.analysis.analyzer.stemming.filter.2" : "stop",
"index.number_of_shards" : "5",
"index.number_of_replicas" : "1"
},
¿Alguien tiene esta funcionalidad en funcionamiento y capaz de señalarme en la dirección correcta?
Solución
Hay un ejemplo de configuración en el uso de analizadores personalizados, utilizando Snowball Stemmer:Por qué Elasticsearch no está encontrando mi término