2

ElasticSearch Serverの本のいくつかの例を調べて、簡単な一致クエリを作成しようとしています

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

これは私にエラーを与えます:

{\"error\":\"SearchPhaseExecutionException[Failed to execute phase [query],      
....
SearchParseException[[scripts][4]: from[-1],size[-1]: Parse Failure [Failed to parse source 
....
QueryParsingException[[kb.cgi] No query registered for [match]]; }

私も試しました

{ 
    "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

4

2 に答える 2

4

私が使用しているリモートサーバーはElasticSearchの最新の0.20.5バージョンではないようです。そのため、「一致」クエリはサポートされていません。代わりに、「テキスト」が機能します。

ここで報告されている同様の問題を見て、この結論に達しました:http: //elasticsearch-users.115913.n3.nabble.com/Character-escaping-td4025802.html

于 2013-03-27T02:05:15.700 に答える
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
于 2013-03-27T01:45:53.513 に答える