Elasticsearchプレフィックスクエリがネストされたドキュメントで機能しない

パウェロック

Elasticsearchクエリにプレフィックスクエリを使用しています。トップレベルのデータで使用すると正常に機能しますが、ネストされたデータに適用すると、結果は返されません。クエリしようとしたデータは次のようになります。

ここでは、プレフィックスクエリが正常に機能します。クエリ:

{ "query": { "prefix" : { "duration": "7"} } }

結果:

{
   "took": 25, ... },
   "hits": {
      "total": 6,
      "max_score": 1,
      "hits": [
         {
        "_index": "itemresults",
        "_type": "itemresult",
        "_id": "ITEM_RESULT_7c8649c2-6cb0-487e-bb3c-c4bf0ad28a90_8bce0a3f-f951-4a01-94b5-b55dea1a2752_7c965241-ad0a-4a83-a400-0be84daab0a9_61",
        "_score": 1,
        "_source": {
           "score": 1,
           "studentId": "61",
           "timestamp": 1377399320017,
           "groupIdentifiers": {},
           "assessmentItemId": "7c965241-ad0a-4a83-a400-0be84daab0a9",
           "answered": true,
           "duration": "7.078",
           "metadata": {
              "Korrektur": "a",
              "Matrize12_13": "MA.1.B.1.d.1",
              "Kompetenz": "ZuV",
              "Zyklus": "Z2",
              "Schwierigkeit": "H",
              "Handlungsaspekt": "AuE",
              "Fach": "MA",
              "Aufgabentyp": "L"
           },
           "assessmentSessionId": "7c8649c2-6cb0-487e-bb3c-c4bf0ad28a90",
           "assessmentId": "8bce0a3f-f951-4a01-94b5-b55dea1a2752"
        }
     },

プレフィックスクエリを使用してネストされた構造体 'metadata'に適用しようとしても、結果は返されません。

{ "query": { "prefix" : { "metadata.Fach": "M"} } }

結果:

{
   "took": 18,
   "timed_out": false,
   "_shards": {
      "total": 15,
      "successful": 15,
      "failed": 0
   },
   "hits": {
      "total": 0,
      "max_score": null,
      "hits": []
   }
}

私は何が間違っているのですか?ネストされたデータにプレフィックスを適用することは可能ですか?

モリウェア

ネストされているかどうかには依存しません。インデックス時に文字列を分析するかどうかは、マッピングによって異なります。

例を挙げます。

次のマッピングを使用して作成し、インデックスを作成しました。

curl -XPUT 'http://localhost:9200/test/' -d '
{
  "mappings": {

    "test" : {
      "properties" : {
        "text_1" : {
           "type" : "string",
           "index" : "analyzed"
        },
        "text_2" : {
          "index": "not_analyzed",
           "type" : "string"
        }
      }
    }
  }
}'

基本的に2つのテキストフィールド。1つは分析され、もう1つはnot_analyzedです。次に、次のドキュメントにインデックスを付けます。

curl -XPUT 'http://localhost:9200/test/test/1' -d '
{
"text_1" : "Hello world",
"text_2" : "Hello world"
}'

text_1クエリ

text_1が分析されるとき、elasticsearchが行うことの1つは、フィールドを小文字に変換することです。したがって、次のクエリを実行すると、ドキュメントが見つかりません。

curl -XGET 'http://localhost:9200/test/test/_search?pretty=true' -d '
{ "query": { "prefix" : { "text_1": "H"} } }
'
{
  "took" : 2,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 0,
    "max_score" : null,
    "hits" : [ ]
  }
}

しかし、私がトリックを行い、クエリを作成するために小文字を使用する場合:

curl -XGET 'http://localhost:9200/test/test/_search?pretty=true' -d '
{ "query": { "prefix" : { "text_1": "h"} } }
'
{
  "took" : 2,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "test",
      "_type" : "test",
      "_id" : "1",
      "_score" : 1.0, "_source" :
{
"text_1" : "Hello world",
"text_2" : "Hello world"
}
    } ]
  }
}

text_2クエリ

text_2は分析されないため、元のクエリを作成すると、次のように一致します。

curl -XGET 'http://localhost:9200/test/test/_search?pretty=true' -d '
{ "query": { "prefix" : { "text_2": "H"} } }
'
{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "test",
      "_type" : "test",
      "_id" : "1",
      "_score" : 1.0, "_source" :
{
"text_1" : "Hello world",
"text_2" : "Hello world"
}
    } ]
  }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Elasticsearch動的テンプレートがネストされたドキュメントで機能しない

分類Dev

ネストされたウィンドウ関数がスノーフレークで機能しない

分類Dev

Mongodbは、プロパティがnullではないネストされた配列ドキュメントをクエリします

分類Dev

ネストされたIFステートメントでPHPリダイレクトが機能しない

分類Dev

このネストされたドロップダウンリストスクリプトが機能しないのはなぜですか?

分類Dev

ヒアドキュメントでSSHに渡されたときにAwkスクリプトが機能しない

分類Dev

ドキュメントに提供されているスクリプトを使用しても、インラインスクリプトが機能しない

分類Dev

ネストされたフレックスボックスグリッドでflex-directionが機能しない

分類Dev

テキストオーバーフロー:ネストされたフレックスコンテナで省略記号が機能しない

分類Dev

スプリングキャッシュはネストされたメソッドで機能します

分類Dev

WPF-ネストされたリストボックスバインディングが機能しない

分類Dev

Elasticsearchのパーティション化されたインデックスがスキップされたのに対し、ドキュメントクエリに一致しなかった

分類Dev

ネストされたフレックスボックスでテキストオーバーフローの省略記号が機能しない

分類Dev

ElasticSearchはネストされたフィールドを新しいドキュメントとして再インデックスします

分類Dev

UrlFetchAppは、ドキュメントではなくスクリプトエディタで機能します

分類Dev

Solrネストドキュメント:親フィールドでフィルタリングされた子ドキュメントのクエリ

分類Dev

ドロップダウンメニューのpythonseleniumxpathでテキストファイルを渡した後にクリックしても機能しない

分類Dev

IOS開発の新機能で、コメントセルをクリックするとクラッシュするスレッド1:SIGABRTにシグナルを送信し、キャッチされない例外が原因でアプリを終了する

分類Dev

Chromeのネストされたフレックスボックスレイアウトで高さのパーセンテージが機能しない

分類Dev

Elasticsearchのネストされたドキュメントで欠落しているクエリと用語クエリを組み合わせる

分類Dev

Android Pie 9.0でダウンロードマネージャーが機能しないNetworkSecurityConfig:プラットフォームのデフォルトを使用して、ネットワークセキュリティ構成が指定されていません

分類Dev

Jenkinsエラー-<URL>でのスクリプト実行のブロック。ドキュメントのフレームがサンドボックス化されており、「スクリプトの許可」権限が設定されていないため

分類Dev

ネストされたフラグメントクラスandroidでOnactivityresultが正常に機能しない

分類Dev

ドキュメント:クリックが機能しない

分類Dev

ネストされたヒアドキュメントはbashスクリプトでどのように機能しますか?

分類Dev

ボタンがクリックされたときにメソッド ポストが機能しない

分類Dev

Elasticsearchを使用したネストされたドキュメントとブールクエリ

分類Dev

インタラクティブなGoogleスプレッドシートからGoogleドキュメントへの編集が機能しない

分類Dev

スクリプトタグがHTMLドキュメントで機能しない

Related 関連記事

  1. 1

    Elasticsearch動的テンプレートがネストされたドキュメントで機能しない

  2. 2

    ネストされたウィンドウ関数がスノーフレークで機能しない

  3. 3

    Mongodbは、プロパティがnullではないネストされた配列ドキュメントをクエリします

  4. 4

    ネストされたIFステートメントでPHPリダイレクトが機能しない

  5. 5

    このネストされたドロップダウンリストスクリプトが機能しないのはなぜですか?

  6. 6

    ヒアドキュメントでSSHに渡されたときにAwkスクリプトが機能しない

  7. 7

    ドキュメントに提供されているスクリプトを使用しても、インラインスクリプトが機能しない

  8. 8

    ネストされたフレックスボックスグリッドでflex-directionが機能しない

  9. 9

    テキストオーバーフロー:ネストされたフレックスコンテナで省略記号が機能しない

  10. 10

    スプリングキャッシュはネストされたメソッドで機能します

  11. 11

    WPF-ネストされたリストボックスバインディングが機能しない

  12. 12

    Elasticsearchのパーティション化されたインデックスがスキップされたのに対し、ドキュメントクエリに一致しなかった

  13. 13

    ネストされたフレックスボックスでテキストオーバーフローの省略記号が機能しない

  14. 14

    ElasticSearchはネストされたフィールドを新しいドキュメントとして再インデックスします

  15. 15

    UrlFetchAppは、ドキュメントではなくスクリプトエディタで機能します

  16. 16

    Solrネストドキュメント:親フィールドでフィルタリングされた子ドキュメントのクエリ

  17. 17

    ドロップダウンメニューのpythonseleniumxpathでテキストファイルを渡した後にクリックしても機能しない

  18. 18

    IOS開発の新機能で、コメントセルをクリックするとクラッシュするスレッド1:SIGABRTにシグナルを送信し、キャッチされない例外が原因でアプリを終了する

  19. 19

    Chromeのネストされたフレックスボックスレイアウトで高さのパーセンテージが機能しない

  20. 20

    Elasticsearchのネストされたドキュメントで欠落しているクエリと用語クエリを組み合わせる

  21. 21

    Android Pie 9.0でダウンロードマネージャーが機能しないNetworkSecurityConfig:プラットフォームのデフォルトを使用して、ネットワークセキュリティ構成が指定されていません

  22. 22

    Jenkinsエラー-<URL>でのスクリプト実行のブロック。ドキュメントのフレームがサンドボックス化されており、「スクリプトの許可」権限が設定されていないため

  23. 23

    ネストされたフラグメントクラスandroidでOnactivityresultが正常に機能しない

  24. 24

    ドキュメント:クリックが機能しない

  25. 25

    ネストされたヒアドキュメントはbashスクリプトでどのように機能しますか?

  26. 26

    ボタンがクリックされたときにメソッド ポストが機能しない

  27. 27

    Elasticsearchを使用したネストされたドキュメントとブールクエリ

  28. 28

    インタラクティブなGoogleスプレッドシートからGoogleドキュメントへの編集が機能しない

  29. 29

    スクリプトタグがHTMLドキュメントで機能しない

ホットタグ

アーカイブ