Elasticsearch 模版设置和使用
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论