1

いくつかのドキュメントをクロールし、elasticsearch でインデックスを作成しました。センスを使用してクエリを実行しています:

これはelasticsearchでの私のクエリです:

POST /index/_update_by_query
{
  "script": {
    "inline": "ctx._source.remove(\"home\")"
  },
  "query": {
        "wildcard": {
          "url": {
            "value": "http://search.com/*"
    }
  }
}

}

これは私のJavaプログラムです:

 Client client = TransportClient.builder().addPlugin(ReindexPlugin.class)
        .build().addTransportAddress(new InetSocketTransportAddress(
            InetAddress.getByName("127.0.0.1"), 9300));

    UpdateByQueryRequestBuilder ubqrb = UpdateByQueryAction.INSTANCE
        .newRequestBuilder(client);

    Script script1 = new Script("ctx._source.remove" +FieldName);

    BulkIndexByScrollResponse r = ubqrb.source("index").script(script1)
        .filter(wildcardQuery("url", patternvalue)).get();

FieldName (ホームが文字列として保存される場所) は、ドキュメントから削除するフィールドの名前です。patternvalue は、パターン " http://search.com/ *" が格納されている場所です。この Java プログラムを実行すると、ドキュメントからホーム フィールドが削除されません。ドキュメントに remove という新しいフィールドを追加します。私は何かが欠けているかもしれません。どんな助けでもいただければ幸いです

4

1 に答える 1