摘要:一使用進行匹配的時候匹配的時候,如果想盡可能的多檢索結(jié)果,考慮使用如果想盡可能精確的匹配分詞結(jié)果,考慮使用如果短語匹配的時候,怕遺漏,考慮使用。
一、使用match進行匹配的時候:
1.匹配的時候,如果想盡可能的多檢索結(jié)果,考慮使用match;
2.如果想盡可能精確的匹配分詞結(jié)果,考慮使用match_phrase;
3.如果短語匹配的時候,怕遺漏,考慮使用match_phrase_prefix。
private static void addKeywordSearchQuery(String keyWordStr,BoolQueryBuilder boolQueryBuilder){ String[] keywords = keyWordStr.split("|"); //這里注意must必須為平級,否則會合并 BoolQueryBuilder shouldBool = QueryBuilders.boolQuery(); for (int i = 0; i < keywords.length; i++) { if (StringUtils.isNotEmpty(keywords[i])) { String[] split = keywords[i].split("+| "); if (split.length>1){ BoolQueryBuilder contetnQuery = QueryBuilders.boolQuery(); BoolQueryBuilder titleQuery = QueryBuilders.boolQuery(); for (int j = 0; j < split.length; j++) { if (!StringUtils.isEmpty(split[j])){ contetnQuery.must(QueryBuilders.matchPhrasePrefixQuery("content",split[j])); titleQuery.must(QueryBuilders.matchPhrasePrefixQuery("title",split[j])); } } shouldBool.should(QueryBuilders.boolQuery().should(contetnQuery).should(titleQuery)); }else { BoolQueryBuilder contentShould = QueryBuilders.boolQuery(); contentShould.should(QueryBuilders.matchPhrasePrefixQuery("content", keywords[i])); contentShould.should(QueryBuilders.matchPhrasePrefixQuery("title", keywords[i])); shouldBool.should(contentShould); } } } boolQueryBuilder.must( QueryBuilders.boolQuery().must(shouldBool)); }四、可以使用range來確定范圍,時間上比較常用:
boolQueryBuilder.must(QueryBuilders.rangeQuery("infotime").gte(opinionSearchBean.getStartTime().getTime()) .lte(opinionSearchBean.getEndTime().getTime()));五、對id進行過濾
boolQueryBuilder.filter(QueryBuilders.idsQuery().types("opiniondata") .addIds(opinionids.toArray(new String[opinionids.size()])));六、對某個值進行排序的時候,如果沒有設(shè)置默認值,則這個值初始化是null,這時候排序則部分生效,如果需要對某個值進行排序的時候,需要進行初始值設(shè)置即可。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69387.html
摘要:另外集群也沒有做物理隔離,有一次促銷活動就因為粉絲數(shù)據(jù)量過于龐大導(dǎo)致進程內(nèi)存耗盡而,使得集群內(nèi)全部索引都無法正常工作,這給我上了深深的一課。 有贊搜索平臺是一個面向公司內(nèi)部各項搜索應(yīng)用以及部分 NoSQL 存儲應(yīng)用的 PaaS 產(chǎn)品,幫助應(yīng)用合理高效的支持檢索和多維過濾功能,有贊搜索平臺目前支持了大大小小一百多個檢索業(yè)務(wù),服務(wù)于近百億數(shù)據(jù)。 在為傳統(tǒng)的搜索應(yīng)用提供高級檢索和大數(shù)據(jù)交互能...
摘要:基本概念在深入解讀之前,先了解下的幾個基本概念,以及這幾個概念背后隱藏的一些東西。如圖是一個內(nèi)的基本組成,內(nèi)數(shù)據(jù)只是一個抽象表示,不代表其內(nèi)部真實數(shù)據(jù)結(jié)構(gòu)。即詞典,是根據(jù)條件查找的基本索引。 前言 Apache Lucene是一個開源的高性能、可擴展的信息檢索引擎,提供了強大的數(shù)據(jù)檢索能力。Lucene已經(jīng)發(fā)展了很多年,其功能越來越強大,架構(gòu)也越來越精細。它目前不僅僅能支持全文索引,也...
摘要:基本概念在深入解讀之前,先了解下的幾個基本概念,以及這幾個概念背后隱藏的一些東西。如圖是一個內(nèi)的基本組成,內(nèi)數(shù)據(jù)只是一個抽象表示,不代表其內(nèi)部真實數(shù)據(jù)結(jié)構(gòu)。即詞典,是根據(jù)條件查找的基本索引。 前言 Apache Lucene是一個開源的高性能、可擴展的信息檢索引擎,提供了強大的數(shù)據(jù)檢索能力。Lucene已經(jīng)發(fā)展了很多年,其功能越來越強大,架構(gòu)也越來越精細。它目前不僅僅能支持全文索引,也...
閱讀 3080·2021-09-28 09:43
閱讀 912·2021-09-08 09:35
閱讀 1451·2019-08-30 15:56
閱讀 1196·2019-08-30 13:00
閱讀 2743·2019-08-29 18:35
閱讀 1837·2019-08-29 14:07
閱讀 3444·2019-08-29 13:13
閱讀 1339·2019-08-29 12:40