2012-11-26 34 views
1

我試圖改變草垛默認設置的東西很簡單,直接指定的工作:Elasticsearch分析從指標設置忽略,只有當在查詢

'settings': { 
    "analyzer": "spanish" 
} 

它看起來重建索引之後:

$ curl -XGET 'http://localhost:9200/haystack/_settings?pretty=true' 
{ 
    "haystack" : { 
    "settings" : { 
     "index.analyzer" : "spanish", 
     "index.number_of_shards" : "5", 
     "index.number_of_replicas" : "1", 
     "index.version.created" : "191199" 
    } 
    } 

但隨着一些停止詞的測試時,它不會按預期工作,它應該過濾掉「ESTO」和「闕」,而是它的過濾「是」和「a」取自英文停用詞:

$ curl -XGET 'localhost:9200/haystack/_analyze?text=esto+is+a+test+que&pretty=true' 
{ 
    "tokens" : [ { 
    "token" : "esto", 
    "start_offset" : 0, 
    "end_offset" : 4, 
    "type" : "<ALPHANUM>", 
    "position" : 1 
    }, { 
    "token" : "test", 
    "start_offset" : 10, 
    "end_offset" : 14, 
    "type" : "<ALPHANUM>", 
    "position" : 4 
    }, { 
    "token" : "que", 
    "start_offset" : 15, 
    "end_offset" : 18, 
    "type" : "<ALPHANUM>", 
    "position" : 5 
    } ] 

而且只有當我指定它的工作原理查詢分析器:

$ curl -XGET 'localhost:9200/haystack/_analyze?text=esto+is+a+test+que&analyzer=spanish&pretty=true' 
{ 
    "tokens" : [ { 
    "token" : "is", 
    "start_offset" : 5, 
    "end_offset" : 7, 
    "type" : "<ALPHANUM>", 
    "position" : 2 
    }, { 
    "token" : "test", 
    "start_offset" : 10, 
    "end_offset" : 14, 
    "type" : "<ALPHANUM>", 
    "position" : 4 
    } ] 

什麼我做錯了任何想法?

謝謝。

回答

1

應該

"settings": { 
    "index.analysis.analyzer.default.type" : "spanish" 
} 
1

,並應用它只是 「乾草堆」 指數:

{ 
    "haystack" : { 
    "settings" : { 
     "index.analysis.analyzer.default.type" : "spanish", 
    } 
} 

感謝imotov了他的建議。