当前位置: 首页 > news >正文

用帝国做网站好做吗流量推广平台有哪些

用帝国做网站好做吗,流量推广平台有哪些,用wordpress改,宣传册设计与制作模板免费前言 本章代码已分享至Gitee: https://gitee.com/lengcz/springbootlucene01 接上文。Lucene(1):Springboot整合全文检索引擎Lucene常规入门附源码 如何在指定范围内查询。从lucene 7 开始,filter 被弃用,导致无法进行调节过滤。 TermInSetQuery 指定…

前言

本章代码已分享至Gitee: https://gitee.com/lengcz/springbootlucene01

接上文。Lucene(1):Springboot整合全文检索引擎Lucene常规入门附源码

如何在指定范围内查询。从lucene 7 开始,filter 被弃用,导致无法进行调节过滤。

TermInSetQuery 指定集合条件过滤

如图,想要设定fromType为CSDN和小米,不需要查询其他来源的文字该怎么办?
在这里插入图片描述

前文提到的TermRangeQuery 属于数值范围的条件,这里显然不适用。

TermRangeQuery query2  = new TermRangeQuery("id", new BytesRef("1001".getBytes()), new BytesRef("1005".getBytes()), true, true);builder.add(query2, BooleanClause.Occur.MUST);

我们需要使用TermInSetQuery

        List<BytesRef> bytesRefList = Arrays.asList(new BytesRef("CSDN".getBytes()),new BytesRef("小米".getBytes()));TermInSetQuery query3 = new TermInSetQuery("fromType",bytesRefList);builder.add(query3, BooleanClause.Occur.MUST);

多关键词在多字段中搜索

//多条件查询构造BooleanQuery.Builder builder = new BooleanQuery.Builder();//        // 条件一
//        MultiFieldQueryParser parser = new MultiFieldQueryParser(str, new IKAnalyzer());// 创建查询对象
//        Query query = parser.parse(text);
//        builder.add(query, BooleanClause.Occur.MUST);BooleanQuery.Builder builder2 = new BooleanQuery.Builder();//这里很重要,必须单独构建一个query,相当于预设一个括号,把几个关键词放到括号里for (String key : text.split(",")) {String fields[] = {"title", "description"};//在标题和描述中搜索String kws[] = {key, key};BooleanClause.Occur[] flags = new BooleanClause.Occur[]{BooleanClause.Occur.SHOULD, BooleanClause.Occur.SHOULD};Query queryKey = MultiFieldQueryParser.parse(kws, fields, flags, new IKAnalyzer()); //通常就是关键词搜索if (rule.equals("and")) { // and 或者 orbuilder2.add(queryKey, BooleanClause.Occur.MUST); //相当于各关键词之间的关系是AND} else {builder2.add(queryKey, BooleanClause.Occur.SHOULD); /// 相当于各关键词之间的关系是OR}}builder.add(builder2.build(), BooleanClause.Occur.MUST);

完整示例

 /**** @param text  关键词,多关键词逗号分割* @param rule 规则, 多关键词之间的关系是and 还是or* @return* @throws IOException* @throws ParseException* @throws InvalidTokenOffsetsException*/@GetMapping("/searchTextMoreParam")public List<BlogTitle> searchTextMoreParam(String text,String rule) throws IOException, ParseException, InvalidTokenOffsetsException {String[] str = {"title", "description"};Directory directory = FSDirectory.open(FileSystems.getDefault().getPath("d:\\indexDir"));// 索引读取工具IndexReader reader = DirectoryReader.open(directory);// 索引搜索工具IndexSearcher searcher = new IndexSearcher(reader);//多条件查询构造BooleanQuery.Builder builder = new BooleanQuery.Builder();//        // 条件一
//        MultiFieldQueryParser parser = new MultiFieldQueryParser(str, new IKAnalyzer());// 创建查询对象
//        Query query = parser.parse(text);
//        builder.add(query, BooleanClause.Occur.MUST);BooleanQuery.Builder builder2 = new BooleanQuery.Builder();//这里很重要,必须单独构建一个query,相当于预设一个括号,把几个关键词放到括号里for (String key : text.split(",")) {String fields[] = {"title", "description"};String kws[] = {key, key};BooleanClause.Occur[] flags = new BooleanClause.Occur[]{BooleanClause.Occur.SHOULD, BooleanClause.Occur.SHOULD};Query queryKey = MultiFieldQueryParser.parse(kws, fields, flags, new IKAnalyzer()); //通常就是关键词搜索if (rule.equals("and")) { //builder2.add(queryKey, BooleanClause.Occur.MUST); //相当于各关键词之间的关系是AND} else {builder2.add(queryKey, BooleanClause.Occur.SHOULD); /// 相当于各关键词之间的关系是OR}}builder.add(builder2.build(), BooleanClause.Occur.MUST);// 条件二// TermQuery不使用分析器所以建议匹配不分词的Field域(StringField, )查询,比如价格、分类ID号等。这里只能演示个ID了。。。
//        Query termQuery = new TermQuery(new Term("id", "1001"));
//        builder.add(termQuery, BooleanClause.Occur.MUST);//        TermRangeQuery query2  = new TermRangeQuery("id", new BytesRef("1001".getBytes()), new BytesRef("1005".getBytes()), true, true);
//        builder.add(query2, BooleanClause.Occur.MUST);List<BytesRef> bytesRefList = Arrays.asList(new BytesRef("CSDN".getBytes()),new BytesRef("小米".getBytes()));TermInSetQuery query3 = new TermInSetQuery("fromType",bytesRefList);builder.add(query3, BooleanClause.Occur.MUST);// 获取前十条记录TopDocs topDocs = searcher.search(builder.build(), 100);// 获取总条数log.info("本次搜索共找到" + topDocs.totalHits + "条数据");//高亮显示SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter("<span style='color:red'>", "</span>");Highlighter highlighter = new Highlighter(simpleHTMLFormatter, new QueryScorer(builder2.build()));//高亮只是关键词,其他属于过滤条件//高亮后的段落范围在100字内Fragmenter fragmenter = new SimpleFragmenter(100);highlighter.setTextFragmenter(fragmenter);// 获取得分文档对象(ScoreDoc)数组.SocreDoc中包含:文档的编号、文档的得分ScoreDoc[] scoreDocs = topDocs.scoreDocs;List<BlogTitle> list = new ArrayList<>();for (ScoreDoc scoreDoc : scoreDocs) {// 取出文档编号int docId = scoreDoc.doc;// 根据编号去找文档Document doc = reader.document(docId);BlogTitle content = selectById(doc.get("id"));//处理高亮字段显示String title = highlighter.getBestFragment(new IKAnalyzer(), "title", doc.get("title"));if (title == null) {title = content.getTitle();}String description = highlighter.getBestFragment(new IKAnalyzer(), "description", content.getDescription());content.setDescription(description);content.setTitle(title);list.add(content);}return list;}
http://www.yayakq.cn/news/965885/

相关文章:

  • 做网站需要提供什么资料网站配色 蓝绿
  • 手机怎么做销售网站哪里有培训网页设计
  • 前端网站开发研究报告新浪云主机上安装wordpress主题
  • 网站开发者id关于公司建网站
  • 建设第三方公众号平台网站教程游戏币网站怎么做
  • 有的网站打开的是html结尾的路径有的不是蜜雪冰城网站建设策划方案
  • 搭建网站seo检测网站开发语言工具
  • 绵阳微网站制作成都网站设计培训班
  • 微信网站主题网络营销论文范文
  • 零遁nas做网站新余网站建设
  • 洛阳做网站推广黄页88会员一年多少钱
  • 如何利用源码做网站企业网站的制作公司
  • 博学云网站建设app开发企业网站建设
  • 咸阳做网站的公司自己做网站要多久
  • 湖北网站推广技巧宣传h5是什么意思
  • 创建网站代码是什么国平seo
  • 网站建设维护费 会计科目google提交网站入口
  • 建设微信营销网站制作wordpress基于
  • vs2017js网站开发方法定制高端网站建设企业
  • 亚马逊在电子商务网站建设中石化石油工程建设公司网站
  • 中学网站建设工作实施方案深圳网站优讳化
  • 系统网站建设方案wordpress主题包安装
  • 建网站什么网最好网站编程工具
  • 公司长沙建站河南网站推广
  • 广东湛江网站建设汝州建设局网站
  • 网站设计工程师是it行业吗网页界面设计的分类
  • 漳州 网站设计帝国网站模板下载
  • 网站模板预览网站建设好的图片
  • 企业网站改版的好处青海网站建设费用
  • 阜新公司做网站国外有什么网站是做服装的