Im Index, den ich erstelle, möchte ich eine Abfrage ausführen und dann (unter Verwendung von Facetten) die Schindeln dieser Abfrage zurückgeben. Hier ist der Analysator ich auf den Text bin mit:Verwenden von Schindeln und Stoppwörtern mit Elasticsearch und Lucene 4.4
{
"settings": {
"analysis": {
"analyzer": {
"shingleAnalyzer": {
"tokenizer": "standard",
"filter": [
"standard",
"lowercase",
"custom_stop",
"custom_shingle",
"custom_stemmer"
]
}
},
"filter": {
"custom_stemmer" : {
"type": "stemmer",
"name": "english"
},
"custom_stop": {
"type": "stop",
"stopwords": "_english_"
},
"custom_shingle": {
"type": "shingle",
"min_shingle_size": "2",
"max_shingle_size": "3"
}
}
}
}
}
Das Hauptproblem ist, dass mit Lucene 4.4, stoppen Filter nicht mehr unterstützen die enable_position_increments
Parameter Schindeln zu beseitigen, die Stoppwörter enthalten. Stattdessen würde ich Ergebnisse erhalten wie ..
„rot und gelb“
"terms": [
{
"term": "red",
"count": 43
},
{
"term": "red _",
"count": 43
},
{
"term": "red _ yellow",
"count": 43
},
{
"term": "_ yellow",
"count": 42
},
{
"term": "yellow",
"count": 42
}
]
Natürlich ist diese STARK skews die Anzahl der zurückgegebenen Schindeln. Gibt es einen Weg nach Lucene 4.4, dies ohne Nachbearbeitung der Ergebnisse zu bewerkstelligen?
Haben Sie eine Lösung für dieses Problem finden? – paweloque
doppelte Frage: http://stackoverflow.com/questions/22609100/elasticsearch-shingles-with-stop-words-elimination – paweloque