2013-03-27 127 views
2

我通過在ElasticSearch服務器書中一些例子工作,並試圖寫一個簡單的匹配查詢沒有找到[匹配]

{ 
    "query" : { 
    "match" : { 
     "displayname" : "john smith" 
    } 
    } 
} 

這給我的錯誤登記查詢我也試過

{ 
    "match" : { 
    "displayname" : "john smith" 
    } 
} 

按照實例上http://www.elasticsearch.org/guide/reference/query-dsl/match-query/

編輯:我覺得我使用的遠程服務器是不是最新的0.20.5版本,因爲使用的,而不是「匹配」,「文本」,似乎允許查詢工作

我已經看到了類似的問題這裏報告:http://elasticsearch-users.115913.n3.nabble.com/Character-escaping-td4025802.html

回答

0

你的第一個查詢看起來很好,但也許你在請求中使用的方式是不正確的。這是一個可行的完整的例子:

curl -XDELETE localhost:9200/test-idx 
curl -XPUT localhost:9200/test-idx -d '{ 
    "settings": { 
     "index": { 
      "number_of_shards": 1, 
      "number_of_replicas": 0 
     } 
    }, 
    "mappings": { 
     "doc": { 
      "properties": { 
       "name": { 
        "type": "string", "index": "analyzed" 
       } 
      } 
     } 
    } 
} 
' 
curl -XPUT localhost:9200/test-idx/doc/1 -d '{ 
    "name": "John Smith" 
}' 
curl -XPOST localhost:9200/test-idx/_refresh 
echo 
curl "localhost:9200/test-idx/_search?pretty=true" -d '{ 
    "query": { 
     "match" : { 
      "name" : "john smith" 
     } 
    } 
} 
' 
echo 
+0

其實是我不好,我才意識到我的本地實例運行0.20.5,和您的查詢,我原來的查詢工作都。這是針對遠程服務器..我認爲它必須使用舊版本,因爲將「匹配」更改爲「文本」修復它,我看到類似的問題報告在這裏:http://elasticsearch-users.115913.n3.nabble。 COM /字符轉義,td4025802.html – blue18hutthutt 2013-03-27 02:02:19