lucene7.3.1 多个field时,用MultiFieldQueryParser实现筛选式搜索

Unity+Hybridclr发布WebGL记录 问题不多,比预想中的顺利,如果遇到问题建议先看Hybridclr的常见问题里面有没有解决方案,没遇到Hybridclr的报错,所以记录的问题里面没有Hybridclr相关的。导出设置里的压缩格式选择了Brotli,而服务器或浏览器不支持,据说是可以拓展服务器配置使支持Brotli,但是由于我本人是IIS小白,所以换了种压缩格式,在publishing Settings修改Compression Fromat为Gzip。3.在浏览器运行之后视图一直闪烁。,修改配置,这个网上很常见。 阅读详情

package com.rokid.server.framework.test;

import java.io.IOException;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

import org.apache.lucene.index.IndexReader;
import org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.queryparser.classic.MultiFieldQueryParser;
import org.apache.lucene.queryparser.classic.ParseException;
import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.search.similarities.BM25Similarity;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.IOContext;
import org.apache.lucene.store.RAMDirectory;

public class Example {

    public static IndexWriter writer;
    public static RAMDirectory idxDir;
    public static SmartChineseAnalyzer analyzer;

    public static void makeIndex() throws IOException {

        FSDirectory fsDir = FSDirectory.open(Paths.get("C:\\Users\\gt\\Desktop\\_ROKID_\\fast-sent-match\\example"));
        idxDir = new RAMDirectory(fsDir, IOContext.DEFAULT);
        analyzer = new SmartChineseAnalyzer();
        IndexWriterConfig iwc = new IndexWriterConfig(analyzer);
        iwc.setSimilarity(new BM25Similarity());

        iwc.setOpenMode(OpenMode.CREATE);
        writer = new IndexWriter(idxDir, iwc);

        List<String> listSent = new ArrayList<String>();
        listSent.add("战旗春秋是最好玩的战棋游戏");
        listSent.add("金古江湖是最好玩的金庸游戏");
        for (String sent : listSent) {
            Document doc = new Document();
            doc.add(new TextField("questionID", String.valueOf(1), Field.Store.YES));
            doc.add(new TextField("question", sent.trim(), Field.Store.YES));
            writer.addDocument(doc);
        }

        List<String> listSent2 = new ArrayList<String>();
        listSent2.add("战旗春秋是最好玩的手机游戏");
        listSent2.add("金古江湖是最好玩的角色扮演游戏");
        for (String sent : listSent2) {
            Document doc = new Document();
            doc.add(new TextField("questionID", String.valueOf(2), Field.Store.YES));
            doc.add(new TextField("question", sent.trim(), Field.Store.YES));
            writer.addDocument(doc);
        }

        writer.commit();

        int nMaxDoc = writer.maxDoc();
        System.out.println("nMaxDoc = " + nMaxDoc);
        writer.close();
    }

    public static void main(String[] args) throws IOException, ParseException {
        makeIndex();

        // String[] stringQuery={"2","金古江湖"}; //通过1,2来筛选
        String[] stringQuery = { "1", "金古江湖" };
        String[] fields = { "questionID", "question" };
        Occur[] occ = { Occur.MUST, Occur.MUST };
        Query query = MultiFieldQueryParser.parse(stringQuery, fields, occ, analyzer);

        TopDocs results = null;
        IndexReader reader = DirectoryReader.open(idxDir);
        IndexSearcher searcher = new IndexSearcher(reader);
        results = searcher.search(query, 3);
        ScoreDoc[] hits = results.scoreDocs;
        for (int i = 0; i < hits.length; ++i) {
            Document doc = searcher.doc(hits[i].doc);
            String strDocSent = doc.get("question");
            System.out.println(strDocSent);
        }
    }
}

ransac拟合2D圆(三点定圆 c++详细版) RANSAC(Random Sample Consensus,随机采样一致性)算法是一种基于随机采样的迭代算法,主要用于从一组包含大量噪声和异常值(外点)的数据中估计数学模型的参数。 阅读详情

相关推荐

【机器学习(一)】从零到一:用sklearn构建你的第一个机器学习项目

本文为机器学习新手提供了一个完整的端到端实战指南。通过使用Python的scikit-learn库,以经典的鸢尾花数据集为例,详细演示了从环境搭建、数据探索、预处理、模型训练与评估,到超参数调优和模型保存的全流程。文章旨在帮助读者快速构建第一个机器学习项目,掌握核心工作流和工程实践。

weixin_29070861的博客 467

Lucene全文检索从入门到精通(精细讲解含代码笔记答疑服务)

Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。通过本次课程的学习实现类似百度、京东商城等应用的全文检索效果;

Polyworks脚本开发实战指南:高效生成数据彩图与报告的关键指令解析

本文深入解析了Polyworks脚本开发中生成数据彩图与自动化报告的核心指令。通过实战案例,详细介绍了REFERENCE_SURFACE、THICKNESS和CLEARANCE等关键彩图生成指令的正确用法与常见避坑点,并阐述了如何利用REPORT_ITEM命令实现从截图、表格生成到智能排版的全流程自动化,旨在帮助三维检测与质量控制工程师大幅提升工作效率与报告标准化水平。

weixin_29209825的博客 555

lucene3.0中使用MultiFieldQueryParser多字段查找

使用Lucene做全文检索,一般我们经常会在多个字段(域)中查找,而不一定关心在那个字段中包含需要查找的值.比如在搜索框中输入:亲亲宝宝 软件开发,只要标题、内容、作者等包含“亲亲宝宝 软件开发”都是我们要查找的结果。Lucene中MultiFieldQueryParser正好给我们提供多字段查找带来方便. MultiFieldQueryParser multiParser= new Mul...

weixin_34185320的博客 534

TwinCAT3 主站动态配置 PDO 的实战技巧与性能优化

本文深入探讨了TwinCAT3主站动态配置PDO的实战技巧与性能优化策略。通过对比静态PDO的局限,阐述了动态配置在提升系统灵活性、降低网络负载和保障实时性方面的核心优势。文章提供了从环境准备、代码实现到错误排查的完整流程,并重点解析了PDO映射、SDO通道区别以及分布式时钟同步等关键概念,帮助工程师掌握EtherCAT网络性能调优的核心方法。

weixin_29213525的博客 346

实施文档

流程管理 2008-04-23 09:44:00 874 收藏 3 分类专栏: 企业管理杂谈 文章标签: 文档 文档管理 项目管理 工作 配置管理 工具 项目实施文档是用来记录、描述、展示实施过程中一系列信息的处理过程,通过书面或图示的形式对项目活动过程或结果进行描述、定义、规定及报告。例如分阶段实施计划文档,标准业务流程文档,标准编码及数据文档,标准参数设置文档,功能操作指南文档。这些文档将会伴随着ERP实施的各个阶段逐渐充实、完善,也同时记载了整个实施的过程和成果。 作为实施顾问人员,在实施过程

qq_52337172的博客 1062

lucene4下用MultiFieldQueryParser同时搜索多个field时

因为工作中突然要用到lucene,就到官网上下了lucene4.7的jar包和文档,回头开始学习的时候才发现,网上lucene相关的资料大部分都停留在3.*阶段,于是结合前辈的代码,自己写了下面一个例子,该例子可以实现对mysql数据库中单个表的索引和多字段同时搜索以及按各个字段设定的权重对结...

chunli5093的博客 600

日语五十音图速记攻略:从形象联想法到实战训练

语言学习中的记忆编码与条件反射构建是高效掌握基础的关键。其核心原理在于通过将抽象符号与具象图像、故事或已知概念关联,利用大脑对视觉和叙事信息的天然高记忆效率,从而降低认知负荷,加速识别与反应速度。这一方法的技术价值在于将机械重复转化为意义联结,显著提升长期记忆的牢固度与提取速度。在日语学习这一具体应用场景中,五十音图作为表音文字系统,正是实践这一记忆技术的绝佳对象。通过系统化的形象联想、分组对比(如平假名与片假名的对应关系)以及间隔重复的实战训练,学习者可以高效攻克这一入门难关,为后续的词汇、语法学习铺设坚

weixin_29032489的博客 376

lucene-多Field搜索与多索引搜索

1、多域搜索MultiFieldQueryParser提供了3个静态方法1)在不同的Field进行不同的查找public static Query parse(String[] queries,String[] fields,Analyzer analyzer) throws ParseException2)在不同的Field上进行同一查找,指定它们之间的布尔关系public

深未来技术 730

YOLOv8独家原创改进:SPPF原创自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4683

使用MATLAB结合EasySpin进行ESR模拟的详细步骤及示例代码

安装EasySpin:确保你已经安装了EasySpin工具箱,它可以帮助你进行ESR模拟。你可以从EasySpin的官方网站(https://easyspin.org/)下载并安装。准备实验数据:将实验得到的EPR数据整理成合适的格式,一般包含磁场(Magnetic Field)和信号强度(Intensity)两列。进行模拟:使用EasySpin的函数对单线态氧自由基和超氧自由基进行模拟。调整参数:通过调整模拟参数,使模拟得到的峰型和峰位置与实验数据尽可能匹配。导出数据。

AI的内部世界的博客 2004

lucene查询之 MulitFieldQueryParser 可以指定多个默认搜索域;及代码示例;代码实现

1.1.1. MulitFieldQueryParser 可以指定多个默认搜索域 @Test public void testMultiFiledQueryParser() throws Exception { IndexSearcher indexSearcher = getIndexSearcher(); //可以指定默认搜索的域是多个 String[] fiel

boss_way的博客 2486

高温环境下(100℃以上)相机的几种保障方案

高温环境下相机保障措施摘要:针对120℃以上高温环境,相机需采取多重防护:1.散热设计采用金属机身、散热鳍片或风扇;2.关键部件选用耐高温材料(铝合金、特种玻璃);3.电子元件需军规级芯片并做三防处理;4.建议外接电源或耐高温电池。工业相机(如FLIR A655sc、Basler ace)及特种机型(Ximea xiQ)具备高温适应性,普通相机可加装隔热套件配合冷却系统。选择时需关注传感器信噪比和全局快门性能,并设置温度监控保护机制。注意高温会加速设备老化,需定期检测维护。(149字)

start_up_go的博客 1584

lucene的多个字段搜索以及分页并高亮显示

package mutilSearch;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.

技术人宝哥 3487

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

lucene 多字段查询-MultiFieldQueryParser

/** * 搜索域加权 */ Map<String, Float> boosts = new HashMap<>(); boosts.put("title", 1.2f); boosts.put("author", 1.1f); boosts.put("content", 1.0f); /** * 多条件之间的关系 */ Boolean...

weixin_30865427的博客 604

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

lucene4下用MultiFieldQueryParser同时搜索多个field时,结果的score浅析

因为工作中突然要用到lucene,就到官网上下了lucene4.7的jar包和文档,回头开始学习的时候才发现,网上lucene相关的资料大部分都停留在3.*阶段,于是结合前辈的代码,自己写了下面一个例子,该例子可以实现对mysql数据库中单个表的索引和多字段同时搜索以及按各个字段设定的权重对结果排序,我在最初排序的结果出来时很不理解,经过一天的研究,终于略知其所以然,下面贴例子程序和分析。 数据

polar_Bear_X的专栏 4028

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

lucene查询

多字段查询 MultiFieldQueryParser 就用这个类 [code="java"]String[] fields = new String[]{"evaluation", "workExperiences", "training"}; BooleanClause.Occur[] flags = {BooleanClause.Occur.SHOULD, BooleanCla...

xly_971223的专栏 139

Lucene实战之关键字匹配多个字段

前言 当我们输入关键字时希望可以支持筛选多个字段,这样搜索内容的覆盖率就会大一些。 匹配多个字段主要用MultiFieldQueryParser类。 单一字段搜索 QueryParser parser=new QueryParser("content",analyzer); Query query =parser.parse(kw); 多个字段搜索 String[] fields={"title","content"}; MultiFieldQuer...

518

lucene多条件查询

1.使用 MultiFieldQueryParser: BooleanClause.Occur[] clauses = {                     BooleanClause.Occur.SHOULD,                     BooleanClause.Occur.SHOULD                 };         Query query

smile_园少 2544

Lucene全文检索框架+Solr+ElasticSearch搜索引擎(Java高级必备.ES)

课程提供所有代码笔记素材以及答疑 1、Lucene框架的熟练应用实现类似百度、京东商城等应用的全文检索效果; 1、Solr简介 2、Solr下载安装以及目录结构介绍 3、Solr应用部署至Tomcat服务器 4、Solr后台管理界面介绍 5、通过managed-schema配置Field以及中文分词器 6、将数据库中的数据导入至Solr索引库 7、通过Solr后台管理界面对索引进行CRUD高亮过滤排序分页 8、通过Solrj实现索引的添加更新 9、通过Solrj实现索引的删除 10、索引的检索_过滤_高亮等操作 11、项目实战应用 12、Solr知识点总结 1、熟练掌握Lucene框架的使用,实现类似百度、京东商城等应用的全文检索效果; 2、ElasticSearch下载安装(window以及linux下安装) 3、集群环境搭建 4、客户端Kibana安装与使用 5、集群管理插件head安装使用 6、java api 操作 ES 7、电商项目实战应用等等 .....

Lucene全文检索框架+Solr搜索引擎(2018版.Java)

Lucene是一个开放源代码的全文检索引擎工具包, 提供了完整的查询引擎和索引引擎, 部分文本分析引擎。Solr是一个高性能,基于Lucene的全文搜索服务器。提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎,是架构师技术!

Lucene 7.0测试使用

lucene7.0基本使用学习

fzczjlsdx的博客 717

Lucene+ElasticSearch入门至项目实战(Java高级、架构师必备套餐)

课程提供所有代码笔记素材以及答疑 1、熟练掌握Lucene框架的使用,实现类似百度、京东商城等应用的全文检索效果; 2、ElasticSearch下载安装(window以及linux下安装) 3、集群环境搭建 4、客户端Kibana安装与使用 5、集群管理插件head安装使用 6、java api 操作 ES 7、电商项目实战应用等等 .....

多域搜索MultiFieldQueryParser

//在不同的Field上进行不同的查找 package query; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.BooleanClause; import org.apac

杨鑫newlife的专栏 4027

全文检索之Lucene入门

在学校Lucene时,我们先提出两个问题: 在数据库中我们是如何根据关键词查询到我们需要的数据? 在文档中如word,网页等文件中如何根据关键词查询到我们需要的数据? 1.分析问题 问题1中,我们是通过select * from table where column like '%关键词%'就可以查询出我们需要的内容。像数据库存储的数据,有固定类型或者有固定长度的数据,为结构化数据。 问题2...

dml111727 374

MultiFieldQueryParser 使用方法

   String[] key = new String[]{"printed","nonquery","sql","update","set"};    String[] fields = {fieldName,fieldName,fieldName,fieldName,fieldName};        //声明BooleanClause.Occur[]数组,它表示多个条件之间的关系 ...

zhangzhanlei1988的博客 293
上一篇: 解决eclipse中出现Resource is out of sync with the file system问题
下一篇: mysql5.7 timeStamp默认值0000-00-00 00:00:00 报错
qq_34412985
博客等级 码龄11年 143粉丝 983原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值