0

私は以下のマッピングを持っています、

{
  "wms": {
    "mappings": {
      "item": {
        "properties": {
          "barcode": {
            "type": "string"
          },
          "comments": {
            "type": "string"
          },
          "id": {
            "type": "long"
          },
          "sku": {
            "type": "nested",
            "properties": {
              "brandName": {
                "type": "string"
              },
              "code": {
                "type": "string"
              },
              "id": {
                "type": "long"
              }
            }
          }
        }
      }
    }
  }
}

および以下のデータ。

{
  "_index": "wms",
  "_type": "item",
  "_id": "100006868381",
  "_score": 1.0,
  "_source": {
    "id": 100006868381,
    "createdBy": null,
    "createdOn": null,
    "lastModifiedOn": null,
    "barcode": "100006868381",
    "sku": {
      "id": 396829,
      "createdBy": null,
      "createdOn": null,
      "lastModifiedOn": null,
      "name": null,
      "code": "KIRAHDBG00598",
      "lastUser": null,
      "adminDisabled": null,
      "description": null,
      "vendorArticleNo": null,
      "vendorArticleName": null,
      "size": null,
      "brandId": null,
      "brandName": "KIARA",
      "brandCode": null,
      "articleTypeId": null,
      "articleTypeName": null,
      "articleTypeCode": null,
      "remarks": null,
      "jitSourced": null,
      "gtin": null,
      "enabled": null,
      "version": null
    },
    "quality": null,
    "itemStatus": null,
    "warehouseId": null,
    "enabled": null,
    "poId": null,
    "poBarcode": null,
    "comments": "Created for PO: RNSI233380213-00Thu Aug 21 10:40:36 IST 2014",
    "orderId": null,
    "bin": null,
    "lotId": null,
    "lotBarcode": null,
    "poSkuId": null,
    "grnSkuId": null,
    "grnBarcode": null,
    "inwardedOn": null,
    "rejectReason": null,
    "rejectReasonDescription": null,
    "cartonBarcode": null
  }
}

spring-elasticsearch データを使用していますが、リポジトリはありません。テンプレート自体を使用することを意味します。バーコードで検索すると、うまくいきます。ネストされたクエリを実行すると、すべて問題ないようですsku.id

{
  "query": {
    "filtered": {
      "query": {
        "match_all": {}
      },
      "filter": {
        "nested": {
          "filter": {
            "term": {
              "sku.id": "396829"
            }
          },
          "path": "sku"
        }
      }
    }
  }
}

しかし、検索すると機能しませんsku.code

{
  "query": {
    "filtered": {
      "query": {
        "match_all": {}
      },
      "filter": {
        "nested": {
          "filter": {
            "term": {
              "sku.code": "KIRAHDBG00598"
            }
          },
          "path": "sku"
        }
      }
    }
  }
}

以下のコードを検索に使用しています。

filterBuilder = FilterBuilders.termFilter(name, value);
if (name.contains(".")) {
    String firstPart = name.split("\\.")[0];
    return FilterBuilders.nestedFilter(firstPart, filterBuilder);
}
Pageable pageable = new PageRequest(0, 20);
SearchQuery searchQuery = new NativeSearchQueryBuilder()
        .withQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), filterBuilder))
        .withPageable(pageable)
        .build();
Page<E> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, this.entryClass);

私が欠けているものを教えてもらえますか?

4

1 に答える 1