2016-04-07 13 views
0

Ich versuche mehrere synonym_path für einen einzigen Index in elasticsearch zu erreichen.Mehrere synonym_path für einzelne Index in der elastischen Suche implementieren

"settings": { 
"index": { 
    "analysis": { 
    "analyzer": { 
     "synonym": { 
     "tokenizer": "whitespace", 
     "filter": ["synonym"] 
     } 
    }, 
    "filter": { 
     "bool": { 
      "should": [{ 
      "synonym": { 
       "type": "synonym", 
       "synonyms_path": "synonyms.txt", 
       "ignore_case": true 
      }}, 
      { 
      "synonym": { 
       "type": "synonym", 
       "synonyms_path": "synonyms2.txt", 
       "ignore_case": true 
      }}] 
     } 
    } 
    } 
} 
}, 
    "mappings": { 
    "animals": { 
     "properties": { 
     "name": { 
      "type": "String", 
      "analyzer": "synonym" 
     } 
     } 
    } 
    } 

habe ich versucht, das Snippet über JSON Sense in Chrome verwenden, aber es erzeugt einen TokenFilter [bool] must have a type associated with it Fehler.

Gibt es eine andere Möglichkeit, es zu implementieren?

Antwort

1

Der Abschnitt filter im Abschnittenthält nicht die Query DSL, sondern token filter Definitionen.

In Ihrem Fall müssen Sie Ihren Index mit den folgenden Einstellungen neu zu erstellen:

{ 
    "settings": { 
    "index": { 
     "analysis": { 
     "analyzer": { 
      "synonyms": { 
      "tokenizer": "whitespace", 
      "filter": [ 
       "synonym1", 
       "synonym2" 
      ] 
      } 
     }, 
     "filter": { 
      "synonym1": { 
       "type": "synonym", 
       "synonyms_path": "synonyms.txt", 
       "ignore_case": true 
      }, 
      "synonym2": { 
       "type": "synonym", 
       "synonyms_path": "synonyms2.txt", 
       "ignore_case": true 
      } 
     } 
     } 
    } 
    }, 
    "mappings": { 
    "animals": { 
     "properties": { 
     "name": { 
      "type": "string", 
      "analyzer": "synonyms" 
     } 
     } 
    } 
    } 
} 
+0

Es gibt eine 'TokenFilter [0] muss einen Typ mit it' Fehler ausgelöst zugeordnet. Was bedeutet das? :) – svynsaenz

+0

Mein schlechtes, ein kleiner Tippfehler, tut mir leid. Gehen Sie voran und versuchen Sie es erneut – Val

+0

Bis jetzt Glück? – Val