2017-07-02 10 views
0

私はESを初めて使う人です。弾性検索:なぜワイルドカードクエリは結果を返しませんか?

GET test/logEvent/_search 
{ 
    "query":{ 
     "wildcard":{ 
     "message": "User:*;level:x1; loged in" 
     } 
    } 
} 

私は、クエリからの見返りに何を取得:私は

"User:x;level:x1; loged in 

は、その後、私は、クエリを実行するために、tryied行を挿入

PUT test 
    { 
     "mappings": { 
      "logEvent":{ 
       "dynamic": "false", 
       "properties": { 
         "hostName":{ 
          "type": "keyword" 

         }, 
         "message":{ 
          "type": "text" 
         } 
         "timeStamp":{ 
          type:"date" 
         } 
        } 
      } 
     } 
    } 

:私は、インデックスを作成しました。私はここで間違って何をしていますか?

+0

スペルとコードの書式が固定されています。 – phd

答えて

0

ワイルドカードクエリはでのみ使用でき、フィールドは解析できません。あなたはそのメッセージがマルチフィールドであるので、あなたのマッピングを変更する必要があり、両方のテキストおよびキーワード:その後、

{ 
    "mappings": { 
    "logEvent": { 
     "dynamic": "false", 
     "properties": { 
     "hostName": { 
      "type": "keyword" 
     }, 
     "message": { 
      "type": "text", 
      "fields": { 
      "keyword": { 
       "type": "keyword", 
       "ignore_above": 256 
      } 
      } 
     }, 
     "timeStamp": { 
      "type": "date" 
     } 
     } 
    } 
    } 
} 

として照会:マッピングで

{ 
    "query": { 
    "wildcard": { 
     "message.keyword": "User:*;level:x1; loged in" 
    } 
    } 
} 

は、あなたの最大の長さにignore_aboveを設定しましたメッセージ

関連する問題