2012-01-04 16 views
3

私は、エラスティック検索でユニコード特殊文字をクエリする解決法を見つけるのに問題があります。私はこのインデックスを作成するときelasticsearchでutf-8特殊文字を検索するには?

curl -XPUT http://localhost:9200/index/type/1 -d '{"name" : "Vrba u řeky"}' 

、その後、IAMは「řeky」というフレーズを検索しようとしているが、すべてがOKです:

curl -XGET 'http://localhost:9200/index/type/_search?pretty=1' -d '{"query" : {"text" : 

{ "_all" : "řeky" }}}' 

{ 
    "took" : 1, 
    "timed_out" : false, 
    "_shards" : { 
    "total" : 5, 
    "successful" : 5, 
    "failed" : 0 
    }, 
    "hits" : { 
    "total" : 1, 
    "max_score" : 0.10848885, 
    "hits" : [ { 
     "_index" : "index", 
     "_type" : "type", 
     "_id" : "1", 
     "_score" : 0.10848885, "_source" : {"name" : "Vrba u řeky"} 
    } ] 
    } 
} 

しかし、私は同じ単語を検索しようとすると、私は何も見つけませんでした:

curl -XGET 'http://localhost:9200/index/type/_search?pretty=1' -d '{"query" : {"text" : { "_all" : "\\u0159eky" }}}' 

エスケープされた文字列をクエリi生のクエリのnstead?

ありがとうございます。あなたは1つのあまりにも多くのバックスラッシュ持って、その後、例えばbashのを使用していると仮定すると、

答えて

4

curl -XGET 'http://localhost:9200/index/type/_search?pretty=1' -d ' 
    {"query" : {"text" : { "_all" : "\u0159eky" }}} 
' 
{ 
    "took" : 16, 
    "timed_out" : false, 
    "_shards" : { 
    "total" : 5, 
    "successful" : 5, 
    "failed" : 0 
    }, 
    "hits" : { 
    "total" : 1, 
    "max_score" : 0.10848885, 
    "hits" : [ { 
     "_index" : "index", 
     "_type" : "type", 
     "_id" : "1", 
     "_score" : 0.10848885, "_source" : {"name" : "Vrba u řeky"} 
    } ] 
    } 
} 
+0

ダブルエンコードされた値を...あなたにクリントンをありがとう! – palmic

関連する問題