6

私はフィールドを持っています

author
Jason Pete
Jason Paul
Mike Yard
Jason Voorhies

Kibana 4.4では、次のようにクエリしています

author:/Jason.*/

だから私はすべてのレコードを取得します

Jason Pete
Jason Paul
Jason Voorhies

よし、今やりたい

author:/Jason P.*/

私が期待する

Jason Pete
Jason Paul

しかし、私は得る

No Records found :(

私の正規表現の何が問題になっていますか? Jason の後にスペース文字を指定する別の方法はありますか? 私も試してみました

author:/Jason\sP.*/

しかし、まだ結果はありません

4

2 に答える 2

2

これは、authorフィールドがおそらく分析され、値が 2 つのトークンにJason Peteトークン化されるためです。したがって、両方の値を照会することはできません。jasonpete

その動作を変更したい場合は、次のように、フィールドからサブauthorフィールドを使用してマルチフィールドを作成することをお勧めします。not_analyzed

curl -XPUT localhost:9200/my_index/_mapping/my_type -d '{
    "my_type": {
      "properties": {
        "author": {
          "type": "string",
          "fields": {                  <--- add this section to author your field
            "raw": {
              "type": "string",
              "index": "not_analyzed"
            }
          }
        }
      }
    }
}'

マッピングが更新されたら ( my_indexandmy_typeを任意のインデックスとマッピング タイプ名に置き換えてください)、データのインデックスを再作成する必要があります。その後、次のauthor.rawように Kibana でフィールドをクエリできるようになります。

author.raw:/Jason P.*/
于 2016-02-19T04:21:29.670 に答える
0

それは私にとってはうまくいきます:

    author:/Jason\ P.*/

\sしたがって、私の場合、スペースにはバックスラッシュスペースが機能しES1.7Kibana4.1.2.

于 2016-03-04T09:54:53.147 に答える