Използвам terms facet за да получите top terms
в сървъра elasticsearch. Сега моите етикети "indian-government"
не се третират като един етикет. Третира се като "indian"
"government"
. И така, най-използваният таг е "indian"
. Как мога да поправя това? Трябва ли да променя токенизацията?
'settings': {
'analysis': {
'analyzer': {
'my_ngram_analyzer' : {
'tokenizer' : 'my_ngram_tokenizer',
'filter': ['my_synonym_filter']
}
},
'filter': {
'my_synonym_filter': {
'type': 'synonym',
'format': 'wordnet',
'synonyms_path': 'analysis/wn_s.pl'
}
},
'tokenizer' : {
'my_ngram_tokenizer' : {
'type' : 'nGram',
'min_gram' : '1',
'max_gram' : '50'
}
}
}
}
Редактиране: Въз основа на коментари, индексиране, както следва. Резултатите обаче не се променят:
es.indices.create(
index="article-index",
body={
'settings': {
'analysis': {
'analyzer': {
'my_ngram_analyzer' : {
'tokenizer' : 'my_ngram_tokenizer',
'filter': ['my_synonym_filter']
}
},
'filter': {
'my_synonym_filter': {
'type': 'synonym',
'format': 'wordnet',
'synonyms_path': 'analysis/wn_s.pl'
}
},
'tokenizer' : {
'my_ngram_tokenizer' : {
'type' : 'nGram',
'min_gram' : '1',
'max_gram' : '50'
}
}
}
},
'mappings': {
'my_mapping_type': {
'_all': {
'enabled': False
},
'_source': {
'compressed': True
},
'properties': {
"tags": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
},
# ignore already existing index
ignore=400
)
РЕДАКТИРАНЕ: Решено. my_mapping_type трябва да се замени с doc_type (в моя случай неговата „статия“) и работи :)
not_analyzed
- person Konstantin V. Salikhov   schedule 17.05.2014