Elasticsearch 模版设置和使用

发布于 2021-06-01 12:48:21 字数 9947 浏览 1588 评论 0

1、设置模版

GET _scripts/company_cha_tmp
{
"script":{
  "lang":"mustache",
  "source":
  """
  {
    "from":{ {from} }{ {^from} }0{ {/from} },
    "size":{ {size} }{ {^size} }10{ {/size} },
    "track_total_hits":true,
    { {#sortfield} }
    "sort":[{
      "{ {sortfield} }":{
        "order":"{ {sortmode} }{ {^sortmode} }desc{ {/sortmode} }",
        "missing":"_last"
      }
    }]
    ,
    { {/sortfield} }
    "query":{
      "bool":{
        "must":{
          "function_score":{
        { {#query_string} }
            "query":{
              "multi_match":{
                "query":"{ {query_string} }",
                "fields":{ {#toJson} }searchFields{ {/toJson} }{ {^searchFields} }["companyName^10","companyNameStr^25","historyName^10","companyDesc^4","businessScope","employeeName","legalPerson^4","product^5","trademark^2","companyAddress","partnerStockName","creditNo^25"]{ {/searchFields} },
                "minimum_should_match":"4<80% 5<90% 10<95%",
                "tie_breaker":0.1
              }
            },
        { {/query_string} }
        { {^query_string} }
        "query":{
          "match_all":{}
        },
        { {/query_string} }
            "score_mode":"sum",
            "boost_mode":"sum",
            "functions":[{
              "field_value_factor":{
                "field":"capitalNumber",
                "missing":0,
                "modifier":"log1p",
                "factor":0.1
              },
              "weight":20
            },{
              "field_value_factor":{
                "field":"companyStatus",
                "missing":0,
                "factor":50
              }
            },{
              "field_value_factor":{
                "field":"companyType",
                "missing":0,
                "factor":50
              }
            }]
          }
        },
    { {#query_string} }
    "should":[{
            "match_phrase":{
                "historyName":{
                    "query":"{ {query_string} }",
                    "slop":1
                }
            } },
            {
            "match_phrase":{
                "companyName":{
                    "query":"{ {query_string} }",
                    "slop":1
                }
            } },
        {"match_phrase":{
        "partnerStockName":{
          "query":"{ {query_string} }",
                      "slop":1,
          "boost":1
        }
        }
        }],
    { {/query_string} }
        "filter":{
          "bool":{
            "must":[
              {
                "range":{
                  "companyType":{
                    "gte":0
                  }
                }
              }
              { {#capitalMin} }
              ,
              {
                "range":{
                  "capitalNumber":{
                    "gte":{ {capitalMin} }
                  }
                }
              }
              { {/capitalMin} }
              { {#capitalMax} }
              ,
              {
                "range":{
                  "capitalNumber":{
                    "lt":{ {capitalMax} }
                  }
                }
              }
              { {/capitalMax} }
              { {#establishDateMin} }
              ,
              {
                "range":{
                  "establishDate":{
                    "gte":{ {establishDateMin} }
                  }
                }
              }
              { {/establishDateMin} }
              { {#establishDateMax} }
              ,
              {
                "range":{
                  "establishDate":{
                    "lt":{ {establishDateMax} }
                  }
                }
              }
              { {/establishDateMax} }
              { {#province} }
              ,
              {
                "term":{
                  "province":"{ {province} }"
                }
              }
              { {/province} }
              { {#prefectureCity} }
              ,
              {
                "term":{
                  "prefectureCity":"{ {prefectureCity} }"
                }
              }
              { {/prefectureCity} }
      { {#companyStatusStr} }
      ,
      {
        "term":{
          "companyStatusStr":"{ {companyStatusStr} }"
        }
      }
      { {/companyStatusStr} }
      { {#companyTypeStr} }
      ,
      {
        "term":{
          "companyTypeStr":"{ {companyTypeStr} }"
        }
      }
      { {/companyTypeStr} }
              { {#cid} }
              ,
              {
                "term":{
                  "cid":{ {cid} }
                }
              }
              { {/cid} }
              { {#cid1} }
              ,
              {
                "term":{
                  "cid1":{ {cid1} }
                }
              }
              { {/cid1} }
              { {#cid2} }
              ,
              {
                "term":{
                  "cid2":{ {cid2} }
                }
              }
              { {/cid2} }
      { {#industryL1Name} }
      ,
      {
        "term":{
          "industryL1Name":"{ {industryL1Name} }"
        }
      }
      { {/industryL1Name} }
      { {#industryL2Name} }
      ,
      {
        "term":{
          "industryL2Name":"{ {industryL2Name} }"
        }
      }
      { {/industryL2Name} }
      { {#industryL3Name} }
      ,
      {
        "term":{
          "industryL3Name":"{ {industryL3Name} }"
        }
      }
      { {/industryL3Name} }
              { {#useHasContact} }
              ,
              {
                "term":{
                  "hasContact":{ {hasContact} }
                }
              }
              { {/useHasContact} }
      { {#useHasEmail} }
              ,
              {
                "term":{
                  "hasEmail":{ {hasEmail} }
                }
              }
              { {/useHasEmail} }
      { {#useHasWebsites} }
              ,
              {
                "term":{
                  "hasWebsites":{ {hasWebsites} }
                }
              }
              { {/useHasWebsites} }
      { {#useHasTrademark} }
              ,
              {
                "term":{
                  "hasTrademark":{ {hasTrademark} }
                }
              }
              { {/useHasTrademark} }
      { {#useHasEntPatentInfo} }
              ,
              {
                "term":{
                  "hasEntPatentInfo":{ {hasEntPatentInfo} }
                }
              }
              { {/useHasEntPatentInfo} }
      { {#useHasExecutedPerson} }
              ,
              {
                "term":{
                  "hasExecutedPerson":{ {hasExecutedPerson} }
                }
              }
              { {/useHasExecutedPerson} }
      { {#useHasCopyrightWorks} }
              ,
              {
                "term":{
                  "hasCopyrightWorks":{ {hasCopyrightWorks} }
                }
              }
              { {/useHasCopyrightWorks} }
      { {#useHasCopyrightReg} }
              ,
              {
                "term":{
                  "hasCopyrightReg":{ {hasCopyrightReg} }
                }
              }
              { {/useHasCopyrightReg} }
      { {#useHasInsuranceAmount} }
              ,
              {
                "term":{
                  "hasInsuranceAmount":{ {hasInsuranceAmount} }
                }
              }
              { {/useHasInsuranceAmount} }
      { {#useHasCompanyBid} }
              ,
              {
                "term":{
                  "hasCompanyBid":{ {hasCompanyBid} }
                }
              }
              { {/useHasCompanyBid} }
      { {#useHasCompanyCustomsBusinessCredit} }
              ,
              {
                "term":{
                  "hasCompanyCustomsBusinessCredit":{ {hasCompanyCustomsBusinessCredit} }
                }
              }
              { {/useHasCompanyCustomsBusinessCredit} }
      { {#useHasChattels} }
              ,
              {
                "term":{
                  "hasChattels":{ {hasChattels} }
                }
              }
              { {/useHasChattels} }
      { {#useHasClears} }
              ,
              {
                "term":{
                  "hasClears":{ {hasClears} }
                }
              }
              { {/useHasClears} }
      { {#useHasTax} }
              ,
              {
                "term":{
                  "hasTax":{ {hasTax} }
                }
              }
              { {/useHasTax} }
              { {#limitMaxDate} }
              ,
              {
                "range":{
                  "lastChangeDate":{
                    "lt":{ {limitMaxDate} }
                  }
                }
              },
              {
                "term":{
                  "companyStatus":1
                }
              }
              { {/limitMaxDate} }
              ]
          }
        }
      }
    },
    "highlight":{
      "fields":{
        "companyName":{},
        "historyName":{},
        "companyDesc":{},
        "businessScope":{},
        "employeeName":{},
        "legalPerson":{},
        "partnerStockName":{},
        "product":{},
        "trademark":{},
        "companyAddress":{},
    "creditNo":{}
      },
      "fragment_size":20
    }
  }
  """
}
}

2、获取模版

GET _scripts/company_cha

3、根据模版查询

GET company_new_index/_search/template
{
"id":"company_cha_tmp",
"params": {
  "query_string":"凭安征信",
  "industryL3Name":"咨询与调查"
}
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文