首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Lucene.net PerFieldAnalyzerWrapper

Lucene.net PerFieldAnalyzerWrapper
EN

Stack Overflow用户
提问于 2013-04-04 19:54:44
回答 1查看 1.5K关注 0票数 2

我已经阅读了如何使用每字段分析器包装器,但无法让它与我的自定义分析器一起工作。我甚至不能让分析器运行构造函数,这让我相信我实际上错误地调用了每个字段的分析器。

这就是我要做的:

创建每字段分析器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PerFieldAnalyzerWrapper perFieldAnalyzer = new  PerFieldAnalyzerWrapper(srchInfo.GetAnalyzer(true));
perFieldAnalyzer.AddAnalyzer("<special field>", dta);

像往常一样添加文档的所有字段,包括我们以不同方式分析的特殊字段。

使用分析器添加文档,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
iw.AddDocument(doc, perFieldAnalyzer);

我在正确的轨道上吗?

EN

回答 1

Stack Overflow用户

发布于 2013-04-05 18:26:43

这个问题与我对CMS (Kentico)内置Lucene助手类的依赖有关。基本上,使用这些类需要通过CMS指定索引级的自定义分析器,而我不希望这样做。因此,我最终几乎在任何地方都直接使用Lucene.net,可以灵活地使用任何我想要的自定义分析器

我还对数据结构进行了一些更改,最终使用久经考验的KeywordAnalyzer来分析文档标记。以前我试着在逗号分隔值上做一些自定义的标记化魔术,比如tag1,tag2,带有许多部分的标签,但无法让它与多部分的标签一起可靠地工作。我仍然保留该字段,但开始向文档添加多个" tag“字段,每个字段存储一个标记。因此,现在我有N个" tag“字段来表示"N”个标签,每个“tag”字段都被分析为一个关键字,这意味着每个标签(一个或多个)都是一个令牌。

我想我在最初的方法中想得太多了。

这就是我最终得到的结果。

在索引方面:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
KeywordAnalyzer ka = new KeywordAnalyzer();
PerFieldAnalyzerWrapper perFieldAnalyzer = new PerFieldAnalyzerWrapper(srchInfo.GetAnalyzer(true));
perFieldAnalyzer.AddAnalyzer("documenttags_t", ka);

-- Some procedure to compile all documents by reading from DB and putting into Lucene docs

foreach(var doc in docs)
{
   iw.AddDocument(doc, perFieldAnalyzer);
}

在搜索时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
KeywordAnalyzer ka = new KeywordAnalyzer();
PerFieldAnalyzerWrapper perFieldAnalyzer = new PerFieldAnalyzerWrapper(srchInfo.GetAnalyzer(true));
perFieldAnalyzer.AddAnalyzer("documenttags_t", ka);

string baseQuery = "documenttags_t:\"" + tagName + "\"";
Query query = _parser.Parse(baseQuery);
var results = _searcher.Search(query, sortBy)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15820504

复制
相关文章
关于Lucene.net
我这里说的只要是在创建索引和查询索引的时候,分词器类型必须要保持一致!!!否则结果不正确会雷死你。
Isaac Zhang
2019/09/10
4040
lucene.net全文检索(二)lucene.net 的封装
明志德道
2023/10/21
2900
Lucene.net 的性能探究--Lucene.net 的并发处理能力到底有多强?
这篇博客并不是证明Lucene.net的性能有多强悍,实际上Lucene.net的并发能力并不让人很满意,这得看你怎么用它。
ShenduCC
2019/04/18
1.4K0
lucene.net 应用资料
本文将围绕该个实例介绍了lucene.net的索引的建立以及如何针对索引进行搜索.最后还将给出源代码供大家学习.
深蓝studyzy
2022/06/15
3770
Lucene.Net实现站内搜索功能
Lucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。开发人员可以基于Lucene.net实现全文检索的功能。
做全栈攻城狮
2018/12/20
1K0
Lucene.Net 删除索引DeleteDocuments的注意事项
Lucene.Net 在删除索引时,经常会出现代码成功执行,但索引并未正直删除的现象,总结一下,要注意以下因素: 1.在创建Term时,注意Term的key一定要是以"词"为单位,否则删除不成功,例如:添加索引时,如果把"d:\doc\id.txt"当作要索引的字符串索引过了,那么在删除时,如果直接把"d:\doc\id.txt"作为查询的key来创建Term是无效的,应该用Id.txt(但这样会把所有文件名为Id.txt的都删除,所以官方建议最好用一个能唯一标识的关键字来删除,比如产品编号,新闻编号等)
菩提树下的杨过
2018/01/22
8470
lucene.net全文检索(一)相关概念及示例
站内搜索通俗来讲是一个网站或商城的“大门口”,一般在形式上包括两个要件:搜索入口和搜索结果页面,但在其后台架构上是比较复杂的,其核心要件包括:中文分词技术、页面抓取技术、建立索引、对搜索结果排序以及对搜索关键词的统计、分析、关联、推荐等。
明志德道
2023/10/21
3170
lucene.net全文检索(一)相关概念及示例
借助 Lucene.Net 构建站内搜索引擎(上)
前言:最近翻开了之前老杨(杨中科)的Lucene.Net站内搜索项目的教学视频,于是作为老杨脑残粉的我又跟着复习了一遍,学习途中做了一些笔记也就成了接下来您看到的这篇博文,仅仅是我的个人笔记,大神请呵呵一笑而过。相信做过站内搜索的.Net程序员应该对Lucene.Net不陌生,没做过的也许会问:就不是个查询嘛!为什么不能使用Like模糊查找呢?原因很简单:模糊查询的契合度太低,匹配关键字之间不能含有其他内容。最重要的是它会造成数据库全表扫描,效率低下,即使使用视图,也会造成数据库服务器"亚历山大"!因此,有必要了解一下Lucene.Net这个神器(也许现在早已不是)!
Edison Zhou
2018/08/20
1.1K0
借助 Lucene.Net 构建站内搜索引擎(上)
火力全开——仿造Baidu简单实现基于Lucene.net的全文检索的功能
Lucene.Net Lucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,是一个Library.你也可以把它理解为一个将索引,搜索功能封装的很好的一套简单易用的API(提供了完整的查询引擎和索引引擎)。利用这套API你可以做很多有关搜索的事情,而且很方便.。开发人员可以基于Lucene.net实现全文检索的功能。 注意:Lucene.Net只能对文本信息进行检索。如果不是文本信息,要转换为文本信息,比如要检索E
用户1161731
2018/03/12
1.5K0
火力全开——仿造Baidu简单实现基于Lucene.net的全文检索的功能
使用Lucene.net创建索引,实现搜索的C#代码示例
这段例子代码用的Lucene.Net2.9.2版本。现在最新版本是Lucene.Net3.0;Lucene.Net可以使用NuGet的安装得到
用户7705674
2021/11/02
1K0
Lucene.net(4.8.0) 学习问题记录三: 索引的创建 IndexWriter 和索引速度的优化
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移。因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的。不过好在Lucene.net 已经有了Core 2.0版本(4.8.0 bate版),而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示。 Lucene.net 4.8.0    https://
ShenduCC
2018/04/27
1.4K0
Lucene.net(4.8.0) 学习问题记录三: 索引的创建 IndexWriter 和索引速度的优化
Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移。因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的。不过好在Lucene.net 已经有了Core 2.0版本(4.8.0 bate版),而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示。 Lucene.net 4.8.0    https://
ShenduCC
2018/04/27
2.3K0
借助 Lucene.Net 构建站内搜索引擎(下)
前言:上一篇我们学习了Lucene.Net的基本概念、分词以及实现了一个最简单的搜索引擎,这一篇我们开始开发一个初具规模的站内搜索项目,通过开发站内搜索模块,我们可以方便地在项目中集成站内搜索功能。本次示例Demo麻雀虽小,五脏俱全,值得学习。
Edison Zhou
2018/08/21
1.4K0
借助 Lucene.Net 构建站内搜索引擎(下)
Lucene.net(4.8.0) 学习问题记录四: IndexWriter 索引的优化以及思考
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移。因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的。不过好在Lucene.net 已经有了Core 2.0版本(4.8.0 bate版),而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示。 Lucene.net 4.8.0    https://
ShenduCC
2018/04/27
1.2K0
使用Lucene.Net做一个简单的搜索引擎-全文索引
Lucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。
Mr. Wei
2020/02/29
1.1K0
使用Lucene.Net做一个简单的搜索引擎-全文索引
Lucene.net(4.8.0) 学习问题记录二: 分词器Analyzer中的TokenStream和AttributeSource[通俗易懂]
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移。因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的。不过好在Lucene.net 已经有了Core 2.0版本,4.8.0 bate版,而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示。
全栈程序员站长
2022/09/15
5890
Lucene.net(4.8.0) 学习问题记录二: 分词器Analyzer中的TokenStream和AttributeSource
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移。因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的。不过好在Lucene.net 已经有了Core 2.0版本,4.8.0 bate版,而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示。 Lucene.net 4.8.0    https://g
ShenduCC
2018/04/27
1.1K0
4.1、苏宁百万级商品爬取 代码讲解 索引建立
Lucene是一款高性能的、可扩展的信息检索(IR)工具库。信息检索是指文档搜索、文档内信息搜索或者文档相关的元数据搜索等操作。
happlyfox
2018/10/31
5370
Lucene.net(4.8.0) 学习问题记录一:分词器Analyzer的构造和内部成员ReuseStategy
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移。因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的。不过好在Lucene.net 已经有了Core 2.0版本,4.8.0 bate版,而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示。 Lucene.net 4.8.0    https://g
ShenduCC
2018/04/27
8920
仿照博客园搜索功能 找找看的实现 发现问题 杂谈
我记得在园子里有园友提出博客园的搜索功能是采用的Lucene.net,具体是不是我也不确定,但是宁可信其是,所以我在仿照博客园 搜索功能的时候采用的也是Lucene.net,有园友给我提意见,就是我以前的博客中提到的那些框架,例如log4net,Quartz.net等都是片面的讲解一个框架结构,只能作为练习用,而不能真正的在项目中使用,具体原因就是在实战中会遇到各种问题,没对应的策略,所以今天我就来把我这个仿照系统的搜索功能的实现简单的描述一下,重点说明的是在项目中使用这些框架应该注意的地方,这样才会更贴切实战,也更有用一些。
全栈程序员站长
2022/07/05
2610

相似问题

如何在卢克工具中使用PerFieldAnalyzerWrapper?

16

Lucene.NET "OR“

40

Lucene.NET MultiSearcher

10

Lucene.Net特性

32

Lucene.Net PrefixQuery

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文