NEST搜索所有字段

时间:2018-09-17 15:44:03

标签: c# elasticsearch nest

我正在尝试构建一个NEST搜索,该查询在每个嵌套级别查询整数和字符串的所有字段以找到匹配项。

此外,能够传递某个masterProductID也是很不错的,但这不是必需的,该MasterProductID只能从masterProduct下的产品中进行搜索。

我无法弄清楚如何对三个或四个级别的查询进行复合,例如,每当我输入“ 1”时,Elastic都不会返回它找到整数1的任何地方。这两个都需要实现,并且Elastic的文档还嵌套没有很多用例。

下面是我正在处理的层次结构的非常简洁的轮廓。 (甚至比这更糟,这是交给我搜索的索引。)

有什么简单的方法可以做到吗?

谢谢。

 "masterProductId":2
 "manufacturerId" : 1
 "productAttributes": [
      {
        "masterProductId": 2,
        "attributeTypeName": "Storage",
        "attributeTypeId": 2,
        "attributeName": "16GB",
        "attributeId": 4,
        "productId": 1124,
        "attributeSortOrder": 2,
        "attributeTypeSortOrder": 1,
        "attributeNameUrl": "16gb"
      },
      {
        "masterProductId": 2,
        "attributeTypeName": "Condition",
        "attributeTypeId": 5,
        "attributeName": "Refurbished Good",
        "value": "Excellent condition with very minor, isolated wear and tear",
        "attributeId": 30,
        "productId": 1124,
        "attributeSortOrder": 3,
        "attributeTypeSortOrder": 4,
        "attributeNameUrl": "refurbished-good"
      }
      "products": [
            {
              "masterProductId": 2,
              "productId": 37,
              "basePrice": 110,
              "websitePriceIncTax": 110,
              "productImages": [
                {
                  "productImageId": 0,
                  "masterProductId": 2,
                  "productId": 37,
                  "name": "Apple iPhone 4s White",
                  "productImageTypeId": 2,
                  "productImageTypeName": "Front",
                  "imageExtension": "jpg",
                  "fileName": "front-appleiphone4swhite.jpg",
                  "fileNameThumb": "front-appleiphone4swhite-thumb.jpg",
                  "isDefault": true
                }

1 个答案:

答案 0 :(得分:0)

我最终找到的唯一解决方案是手动引用每个单独的索引以使用各种搜索类型的化合物进行搜索。有必要将对象简化为最少的字段数。