Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Lucene.net进行精确短语搜索

使用Lucene.net进行精确短语搜索
EN

Stack Overflow用户
提问于 2009-05-11 18:26:23
回答 2查看 13.4K关注 0票数 11

我在使用Lucene.NET 2.0.0.4搜索精确短语时遇到问题

例如,我正在搜索"scope attribute sets the variable“(包括引号),但没有得到任何匹配,我已经100%确认了该短语的存在。

有没有人能建议我哪里错了?Lucene.NET甚至支持这一点吗?像往常一样,API文档没有太多帮助,我读过的一些CodeProject文章也没有特别涉及到这一点。

使用以下代码创建索引:

代码语言:javascript
运行
AI代码解释
复制
Directory dir = Lucene.Net.Store.FSDirectory.GetDirectory("Index", true);

Analyzer analyzer = new Lucene.Net.Analysis.SimpleAnalyzer();

IndexWriter indexWriter = new Lucene.Net.Index.IndexWriter(dir, analyzer,true);

//create a document, add in a single field
Lucene.Net.Documents.Document doc = new Lucene.Net.Documents.Document();

Lucene.Net.Documents.Field fldContent = new Lucene.Net.Documents.Field(
    "content", File.ReadAllText(@"Documents\100.txt"),
    Lucene.Net.Documents.Field.Store.YES,
    Lucene.Net.Documents.Field.Index.TOKENIZED);

doc.Add(fldContent);

//write the document to the index
indexWriter.AddDocument(doc);

然后,我使用以下命令搜索一个短语:

代码语言:javascript
运行
AI代码解释
复制
//state the file location of the index
Directory dir = Lucene.Net.Store.FSDirectory.GetDirectory("Index", false);

//create an index searcher that will perform the search
IndexSearcher searcher = new Lucene.Net.Search.IndexSearcher(dir);

QueryParser qp = new QueryParser("content", new SimpleAnalyzer());

// txtSearch.Text  Contains a phrase such as "this is a phrase" 
Query q=qp.Parse(txtSearch.Text);  


//execute the query
Lucene.Net.Search.Hits hits = searcher.Search(q);

目标文档大约是7MB的纯文本。

我已经看过这个previous question,但是我不想要接近搜索,只想要一个精确的短语搜索。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-05-11 21:18:44

您尚未启用术语职位。如下所示创建字段可以解决您的问题。

代码语言:javascript
运行
AI代码解释
复制
Lucene.Net.Documents.Field fldContent = 
    new Lucene.Net.Documents.Field("content", 
        File.ReadAllText(@"Documents\100.txt"),
    Lucene.Net.Documents.Field.Store.YES,
    Lucene.Net.Documents.Field.Index.TOKENIZED, 
    Lucene.Net.Documents.Field.TermVector.WITH_POSITIONS_OFFSETS);
票数 13
EN

Stack Overflow用户

发布于 2009-06-24 12:21:41

Shashikant Kore is correct with his answer,你需要启用定期职位...

但是,我建议不要将文档的文本存储在字段中,除非您绝对需要它在搜索结果中返回给您……将存储设置为'NO‘可能有助于减小索引的大小。

代码语言:javascript
运行
AI代码解释
复制
Lucene.Net.Documents.Field fldContent = 
    new Lucene.Net.Documents.Field("content", 
        File.ReadAllText(@"Documents\100.txt"),
    Lucene.Net.Documents.Field.Store.NO,
    Lucene.Net.Documents.Field.Index.TOKENIZED, 
    Lucene.Net.Documents.Field.TermVector.WITH_POSITIONS_OFFSETS);
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/850897

复制
相关文章
视频中为什么需要这么多的颜色空间?
 点击上方“LiveVideoStack”关注我们 ▲扫描图中二维码或点击阅读原文▲ 了解音视频技术大会更多信息 ---- 作者:王伟 编辑:Alex 图片来源:Unsplash (by Marques Kaspbrak) 在视频处理中,我们经常会用到不同的色彩空间:非线性 RGB、线性 RGB、YUV、XYZ……为什么需要这么多的色彩空间呢?为什么在FFmpeg中会有 color_space,color_transfer,color_primaries 等一系列的颜色属性呢?这些术语之间究竟隐藏着什
LiveVideoStack
2022/09/20
1K0
视频中为什么需要这么多的颜色空间?
为什么大语言模型这么大?
AI模型主要由浮点数构成,通过分词器和嵌入模型等各种组件处理输入来运行。它们的大小从千兆字节到太字节不等,更大的参数数量可以提高性能和细微差别表示。但是,它们是如何变得如此庞大的呢?
云云众生s
2025/01/25
570
用户空间到内核空间为什么需要拷贝?
The simple answer to that is, "Kernel Developers do not put blind faith in anything". When any data is passed to the kernel space from userspace, it is the responsibility of the kernel developer to make sure that everything is sanitized. Just as you check for corner conditions in the functions, it is something similar for the kernel developers. Its a hygienic practice to use copy_from_user() to read the userspace data. We all know that there are all kinds of people in the world, and the same generalization applies to us coders. The kernel developers have to be everything to everyone. So, even if you are a clumsy coder who actually passed a pointer pointing to address in the kernel space by mistake, or if you are a malicious hacker who just wants to fool around and passed malformed data, the kernel should still handle that and not crash. The functions copy_from_user() does all these checks and more before it copies the data from the userspace to kernel space. Just to make sure that the kernel dev does not have to manually check all these conditions, does not accidentally miss out on any and to abstract it for future use and extendability, the kernel architects have made a simple function that everyone can use. It just adds uniformity to the code and makes things that bit robust, simpler and cleaner.
西湖醋鱼
2020/12/30
9440
Git目录为什么这么大
本文围绕git的目录过大,从git进行版本控制底层存储出发,简要分析Git目录过大的原因,以及如何处理
仙人技术
2021/08/31
1.3K0
Git目录为什么这么大
为什么需要这么多​编程语言?
学编程的过程中,总是有小伙伴纠结我到底是该学C语言呢?还是Python呢?或者学Java?
老九君
2020/04/08
1K0
为什么需要这么多​编程语言?
微博的力量为什么这么大?
最近听闻「杨超越杯编程大赛」很是火热~ 网友纷纷评论,原来追星还可以这么硬核,没点实力还不敢追了。 本期,小F通过爬取新浪微博评论,来看看大家对此次大赛有什么看法。 在此之前,先查阅一下相关资料,发现从微博的手机端和移动端入手,效果还可以。 网页版的微博,想都不用想,去了就是自讨苦吃。 微博的反爬甚是厉害,我可不想去大动干戈... 虽然最后由于种种原因,还是没能够获取到完整的评论,不过也拿到了挺多数据。 还是可以拿来一窥的。 / 01 / 网页分析 网页端微博直接不看,先看一下手机端。 网址为 https:
龙哥
2019/04/25
8490
微博的力量为什么这么大?
操作系统,为什么需要内核空间和用户空间?
本文以 32 位系统为例介绍内核空间(kernel space)和用户空间(user space)。
架构师修行之路
2020/11/03
4.2K0
操作系统,为什么需要内核空间和用户空间?
为什么ToB产品需要这么多文档?
大家都知道编写产品文档是PM的工作内容之一,对于ToC和ToB的产品来说,编写的产品文档也会存在一些差异性。
奔跑的小鹿
2021/09/28
7460
为什么ToB产品需要这么多文档?
PostgreSQL中的大容量空间探索时间序列数据存储
欧洲航天局科学数据中心(the European Space Agency Science Data Center,简称ESDC)利用TimescaleDB扩展切换到用PostgreSQL来存储他们的数据。ESDC的各种数据,包括结构化的、非结构化的和时间序列指标在内接近数百TB,还有使用开源工具查询跨数据集的需求。
星哥玩云
2022/08/17
2.6K0
PostgreSQL中的大容量空间探索时间序列数据存储
Postgresql表空间
不同的数据库表空间有不同的定义: 在 postgres 中,表空间 允许在文件系统中定义数据库对象存储的位置,实质上就是指定了一个目录。 与数据库的关系 在 postgres 中,一个表空间可以让多个数据库使用,而一个数据库也可以使用多个表空间,属于“多对多”的关系; 在 oracle 中,一个表空间只属于一个数据库,而一个数据库可以使用多个表空间,属于“一对多”的关系。
DB之路
2021/07/06
1.8K0
PostgreSQL 分区表为什么要带 pg_pathman 过时了?
PostgreSQL 如果使用较早的“大仙”们,在做分区的时候会提pg_pathman,为什么一个数据库使用分区表还要一个插件,可能习惯商业数据库的“人儿们”,不大理解。这点要从PG的分区表的来源来说, PG的分区表其实是PG的表继承概念的延伸。表继承允许planner只包含那些与查询兼容的子表(分区)。同时,用户在分区管理方面还有很多工作要做:创建继承的表,编写触发器来选择合适的分区进行行插入等。为了自动化这项工作,编写了pg_partman扩展。
AustinDatabases
2020/03/26
2.1K0
PostgreSQL  分区表为什么要带 pg_pathman 过时了?
为什么MySQL内存占用这么大? for InnoDB
这是 Innodb 引擎最重要的缓存,也是提升查询性能的重要手段。一般是global共享内存中占用最大的部分。在进行 SQL 读和写的操作时,首先并不是对物理数据文件操作,而是先对 buffer_pool 进行操作,然后再通过 checkpoint 等机制写回数据文件。占用的内存启动后就不会自动释放,默认通过LRU的算法镜像缓存淘汰,每次的新数据页,都会插入buffer pool的中间,防止前面的热数据被冲掉,长时间没动静的冷数据,会被淘汰出buffer pool,但是是被其它新数据占用了,所以一般这里不会释放的,除非重启(5.7 开始支持动态调整,默认以128M的chunk单位分配内存块)。innodb_buffer_pool主要包含数据页、索引页、undo 页、insert buffer、自适应哈希索引、锁信息以及数据字典等信息。
elontian田凌翔
2019/11/11
7.8K0
为什么MySQL内存占用这么大? for InnoDB
程序员鸭梨为什么这么大
一: 任务多,精神紧绷 调研发现86%的程序员认为“近1~2 年压力越来越大”,还有一部分程序员表示“因为工作太多,情绪总处于紧绷状态,所以精神压力也非常大”。 互联网兴起引发的软件项目的暴增以及软件开发周期的变短,这两种主要原因相互作用并最终导致了工作数量的增加。 老板和产品人不停地拉回项目,可他们大多对软件开发知识缺乏专业的培训,他们不清楚开发软件的难易程度和需要的开发工期。结果,倒霉了干活的程序员。 二: 新技术频频爆发,没时间学习 在科技
wangxl
2018/03/08
7750
程序员鸭梨为什么这么大
简单的 HTTP 调用,为什么时延这么大?
最近项目测试遇到个奇怪的现象,在测试环境通过 Apache HttpClient 调用后端的 HTTP 服务,平均耗时居然接近 39.2ms。可能你乍一看觉得这不是很正常吗,有什么好奇怪的?其实不然,我再来说下一些基本信息,该后端的 HTTP 服务并没有什么业务逻辑,只是将一段字符串转成大写然后返回,字符串长度也仅只有 100 字符,另外网络 ping 延时只有 1.9ms左右。因此,理论上该调用耗时应该在 2-3ms 左右,但为什么平均耗时 39.2ms 呢?
kirito-moe
2019/07/17
1.9K0
简单的 HTTP 调用,为什么时延这么大?
简单的 HTTP 调用,为什么时延这么大?
最近项目测试遇到个奇怪的现象,在测试环境通过 Apache HttpClient 调用后端的 HTTP 服务,平均耗时居然接近 39.2ms。可能你乍一看觉得这不是很正常吗,有什么好奇怪的?其实不然,我再来说下一些基本信息,该后端的 HTTP 服务并没有什么业务逻辑,只是将一段字符串转成大写然后返回,字符串长度也仅只有 100 字符,另外网络 ping 延时只有 1.9ms 左右。因此,理论上该调用耗时应该在 2-3ms 左右,但为什么平均耗时 39.2ms 呢?
涤生
2019/07/17
1.3K0
简单的 HTTP 调用,为什么时延这么大?
Ubuntu 动态调整分区空间
今天发现虚拟机磁盘满了报警了,明明 50 GiB 可以用很久,怎么会这么快满了呢,找了各种数据库日志文件等半天始终找不出不对劲的文件。
阿龙w
2023/10/18
4120
Ubuntu 动态调整分区空间
《PostgreSQL数据分区:原理与实战》
Hey, 宝藏们!猫头虎又回来啦!🐯 最近,我发现很多小伙伴都在搜索“PostgreSQL 数据分区”,“PostgreSQL 分区优化”等关键词。数据分区是如何提高查询性能的神奇力量?让我们一起深入探索《PostgreSQL数据分区:原理与实战》吧!
猫头虎
2024/04/09
4280
为什么页面跟设计稿差距这么大
在互联网产品的研发流程中,页面的视觉还原是很重要的一个步骤,也往往是问题最多的一个环节。如果一些细节问题在这个环节没有被有效地发现并解决,那么后续流程中再去解决这些问题的成本就会呈指数上升。
姬小光
2018/09/05
8220
为什么页面跟设计稿差距这么大
PostgreSQL 自动创建分区最佳实践
分区表是 PostgreSQL 在 10 版本才具有的特性,实际使用中,用户往往需要做到提前创建分区或者按写入的数据实时创建分区。 本文探讨常见的几种自动分区创建方案。
艾超_运成
2022/02/13
4.6K0
PostgreSQL 自动创建分区最佳实践
大模型相关技术-为什么需要rerank
在RAG(RetrievalAugmented Generation)中,embedding模型的向量检索可以帮助提高文本生成的效果,但仍然需要
西门呀在吹雪
2024/05/07
1.7K0
大模型相关技术-为什么需要rerank

相似问题

如何解析JSDoc

13

JSDoc:如何包含多个.md文件

128

JSDoc解析未解析变量

12

未解析jsdoc字段

10

在vscode中解析jsdoc/tsdoc

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档