ElasticSearch.ElasticSearch和产品命名法:连字符和空格

vjrehmav  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(0)|浏览(297)

我很难弄清楚如何设置elasticsearch来搜索典型的产品型号命名法。例如,搜索sm7b、sm 7b、sm 7、sm-7时,应显示一个名为“舒尔sm7b”的产品。。。反之亦然:搜索sm7b应该得到类似sm-7,sm7。。。
现在,我得到这样的结果:如果我搜索“罗兰d 50”,我会得到罗兰d 50,罗兰d-50,罗兰d-550,罗兰d-20等等。。。但是如果我搜索“罗兰d50”,我只得到“罗兰d50”的结果。
这是我当前的Map/设置:

{
  "products" : {
    "mappings" : {
      "Product" : {
        "properties" : {
          "article_reviews" : {
            "type" : "integer"
          },
          "brand_id" : {
            "type" : "integer"
          },
          "category" : {
            "type" : "text"
          },
          "category_id" : {
            "type" : "integer"
          },
          "date" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "description" : {
            "type" : "text"
          },
          "has_image" : {
            "type" : "integer"
          },
          "id" : {
            "type" : "integer"
          },
          "last_review_date" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss"
          },
          "min_price" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "name" : {
            "type" : "text"
          },
          "name_order" : {
            "type" : "keyword"
          },
          "price_history" : {
            "type" : "integer"
          },
          "rating" : {
            "type" : "float"
          },
          "reviews" : {
            "type" : "integer"
          },
          "shops" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "widget" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          }
        }
      }
    }
  }
}

此外,我还需要自动完成搜索,例如,“舒尔sm”应显示舒尔sm-7、舒尔sm7、舒尔sm58、舒尔sm 57等结果。。。在我打字的时候缩小范围。
有什么线索吗?谢谢您!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题