Estimados, tengo ei siguiente item cargado en el indice:
{
"_index": "books_ar",
"_type": "item",
"_id": "1225714",
"_score": 10.9347725,
"_source": {
"title": "Fueron por todo",
"catalogitem_id": "1225714",,
"language_code": "es",
"external_id": "9789500758222",
"language": "Español",
"provider": "LC2",
"publisher": "Penguin Random House Grupo Editorial Argentina",
"contributor": "Nicolás Wiñazki",
"author": "Nicolás Wiñazki",
"author_id": "255669"
}
Pero cuando hago una busqueda por title "Fueron por todo" no lo encuentra. Esta es mi query.
{
"query": {
"multi_match": {
"query": "Fueron por todo",
"type": "best_fields",
"fuzziness": "AUTO",
"fields": ["title"],
"tie_breaker": 0.3
}
}
}
Y este es mi mapping para ese campo:
"title":{
"type": "string",
"analyzer":"spanish",
"fielddata":true,
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
}
Al igual que este titulo hay muchos otros que pasa lo mismo. Y no entiendo el por que, si pueden ayudarme seria de mucha ayuda.
Gracias!!
gmoskovicz
(Gabriel Moskovicz)
February 16, 2018, 3:25pm
2
leandrobara:
spanish
Hola @leandrobara ,
Cual es la configuración del analyzer spanish
? Eso lo puedes ver en los index settings.
Saludos!
Hola, este es mi mapping:
{
"settings" : {
"analysis" : {
"analyzer":{
"no_accent": {
"tokenizer": "standard",
"filter": [ "lowercase", "asciifolding", "default_spanish_stopwords", "default_spanish_stemmer", "spanish_stop" ]
}
},
"filter" : {
"default_spanish_stemmer" : {
"type" : "stemmer",
"name" : "spanish"
},
"default_spanish_stopwords": {
"type": "stop",
"stopwords": [ "spanish " ]
}
}
}
},
"mappings": {
"notfound": {
"_all":{"enabled": false},
"properties": {
"query":{"type":"string","analyzer":"spanish"},
"date": {"type": "date", "format": "yyyy-MM-dd HH:mm:ss", "null_value": "1970-01-01 00:00:01"}
}
},
"item": {
"_all":{"enabled": false},
"properties": {
"catalogitem_id":{"type": "keyword"},
"external_id":{"type": "keyword"},
"title":{
"type": "string",
"analyzer":"spanish",
"fielddata":true,
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
},
"contributor":{"type": "string", "fielddata":true},
"author":{"type": "string", "index": "not_analyzed"},
"author_id":{"type": "string", "index": "not_analyzed"},
}
}
}
}
gmoskovicz
(Gabriel Moskovicz)
February 16, 2018, 3:30pm
4
leandrobara:
multi_match
Y otra pregunta, porque quieres utilizar el multi_match
aqui ? Si solo estas buscando en un unico campo?
Saludos!
--Gabriel
Gracias por responser!! mmm cual sería la query correcta?
gmoskovicz
(Gabriel Moskovicz)
February 16, 2018, 3:44pm
6
Ya intente con esa query, pero no...
Request:
{
"query": {
"match" : { "title" : "Fueron por todo" }
}
}
Response:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
gmoskovicz
(Gabriel Moskovicz)
February 16, 2018, 4:28pm
8
Parece que tu problema es que el analizador no devuelve ningún token. Fijate esto:
GET test/_search
{
"aggs": {
"NAME": {
"terms": {
"field": "title",
"size": 10
}
}
}
}
POST test/_analyze?text=Fueron por todo&analyzer=spanish
Tanto el aggregation, como el analizador no muestra nada si solo pongo ese documento. Algo con respecto a l spanish
analyzer.
Todas las palabras de esa frase son stopwords, entonces no devuelve nada.
Saludos,
system
(system)
Closed
March 16, 2018, 4:40pm
9
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.