日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

ElasticSearch 7.X系列之:細節問題

作者:超超超超子 更新時間: 2022-05-20 編程語言

1.keyword類型不分詞,
text類型分詞,
但是keyword類型有字節長度限制,長度為

如果超長文本,而且不需要分詞,則可以設置為
text,被指定字段不分詞,例:

"introduces" : {
          "type" : "text",
          "index": false
        },


2多條件搜索排序,可以通過對查詢字段設置權重,排序時,對算分進行排序
例:

					builder=QueryBuilders.boolQuery()
					.should(QueryBuilders.matchQuery("extension_field",content).boost(500).operator(Operator.AND))
					.should(QueryBuilders.matchQuery("names",content).boost(200).operator(Operator.AND))
					.should(QueryBuilders.matchQuery("brandname",content).boost(100).operator(Operator.AND))
					.should(QueryBuilders.matchQuery("oneName",content).boost(2).operator(Operator.AND))
					.should(QueryBuilders.matchQuery("twoName",content).boost(2).operator(Operator.AND))
					.should(QueryBuilders.matchQuery("threeName",content).boost(2).operator(Operator.AND));
    
    
    if(sortField!=null&&!"".equals(sortField)){
				//按照用戶選擇進行排序
				if ("asc".equals(sort)){
					searchSourceBuilder.sort(sortField, SortOrder.ASC).sort("_score", SortOrder.DESC);
				}else if("desc".equals(sort)){
					searchSourceBuilder.sort(sortField, SortOrder.DESC).sort("_score", SortOrder.DESC);
				}
			}
			else {
//				按照默認,區分企業和個人不同用戶類型來排序
				if (userType==1){
					searchSourceBuilder.sort("personSort",SortOrder.ASC).sort("_score", SortOrder.DESC);
				}else {
					searchSourceBuilder.sort("enterpriseSort",SortOrder.ASC).sort("_score", SortOrder.DESC);
				}
			}

?

?

//設置minimum_should_match,使must和shoud同時生效 boolquerybuilder.minimumShouldMatch(1);

20220420:排序不準確
問題情況:


解決方法:


原因:
排序問題。
數組類型是nested類型時,對數組中的字段排序,實際時對數組里面的二級對象排序,
普通數組類型排序,排序的是值

若有收獲,就點個贊吧

原文鏈接:https://blog.csdn.net/g5703129/article/details/124816486

欄目分類
最近更新