首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >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

复制
相关文章
RethinkDB is shutting down
Today I have sad news to share. After more than seven years of development, the company behind RethinkDB is shutting down. We worked very hard to make RethinkDB successful, but in spite of all our efforts we were ultimately unable to build a sustainable bu
时见疏星
2018/06/01
3960
使用 shell(bash) 来检查 git 分支是否存在
不多说,直接上代码 localBranch=$(git branch|awk '{print $2}') if [ -n "localBranch" ]; then echo "存在该分支,并不进行创建" else echo "该分支不存在" fi
用户2353021
2020/05/11
3.5K0
JavaScript 检查是否是数字
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/109551.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/05
1.1K0
js检查日期是否合法
检查日期是否合法 <script> function CheckDateTime(str) { var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if (r == null) return false; r[2] = r[2] - 1; var d = new Date(r[
江一铭
2022/06/16
6.4K0
js检查是否是数组
该方法兼容Chrome 5, Firefox 4.0, IE 9, Opera 10.5 和 Safari 5,详细兼容性,可以查阅这篇文章。
IT工作者
2022/01/27
3.4K0
JS检查是否支持Storage
查看效果:http://hovertree.com/code/html5/q69kvsi6.htm
全栈程序员站长
2022/07/15
2.8K0
使用Python,怎么检查列表中所有元素是否相同?
如何判断一个列表的元素是否全部一样,有很多种方法。今天来分享一下,我最喜欢的一种方法,推荐给你。
TalkPython
2020/12/29
8.4K0
RethinkDB的简单介绍
RethinkDB最早是作为一个对SSD进行专门优化的MySQL存储引擎出现的,其特点在于对SSD的充分利用。而目前RethinkDB已经脱离MySQL成为一个独立的存储。 RethinkDB目前支持几乎所有的64位Linux发行版,包括:
Debian中国
2018/12/21
1.3K0
python 检查是否存在ddos攻击
import dpkt import socket import optparse
用户5760343
2019/07/31
3.7K0
python 检查是否存在ddos攻击
php-检查网站是否宕机
浏览量 2 <?php $url="http://www.google.com"; $agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT
kdyonly
2023/03/03
1.6K0
如何使用 Python 检查两个列表是否反向相等?
在 Python 中使用列表时,在某些情况下,您可能需要比较两个列表是否反向相等。这意味着一个列表中的元素与另一个列表中的元素相同,但顺序相反。在 Python 中,我们可以使用反转和比较列表、使用 zip() 函数、将列表转换为字符串等方法检查两个列表是否反向相等。在本文中,我们将了解这些方法,并借助各种示例检查两个列表是否反向相等。
很酷的站长
2023/08/11
1950
如何使用 Python 检查两个列表是否反向相等?
Kettle之“检查表是否存在”
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53884107
用户1148526
2019/05/25
3.8K0
检测系统是否为检查版本(Checked)
<<Windows internals 5th editon>> page 48.
obaby
2023/02/28
2.2K0
检测系统是否为检查版本(Checked)
检查评论者是否有Gravatar头像
今天Angel来了,同时为风风找到了一个评论方面的BUG——游客身份若使用的邮箱没有Gravatar头像就不能发评论,这对于一些有特殊需要的朋友来说可能算不上BUG,但却不是我的需求,之后发现是comments-ajax.php文件中的以下代码在起作用:
WindCoder
2018/09/20
9240
Python脚本检查TCP端口是否正常
#!/usr/bin/python import socket import re import sys def check_server(address,port): s = socket.socket() print "Attempting to connect to %s on port %s" % (address,port) try: s.connect((address,port)) print "Connected to %s on port %s" % (address,port) retu
院长技术
2021/02/19
1.6K0
检查Linux是否被入侵的方法
一、检查系统日志 lastb //检查系统错误登陆日志,统计IP重试次数 二、检查系统用户 1、cat /etc/passwd //查看是否有异常的系统用户 2、grep "0" /etc/passwd //查看是否产生了新用户,UID和GID为0的用户 3、ls -l /etc/passwd //查看passwd的修改时间,判断是否在不知的情况下添加用户 4、awk -F : '$3==0 {print $1}' /etc/passwd //查看是否存在特权用户 5、awk -F : 'length($2
joshua317
2018/04/16
2.1K0
检查app的activity是否在当前
APP开发中经常会遇到这种需求,需要检查当前的APP是不是可见的,比如,如果是可见的就维持一个socket长连接,如果切到后台不可见了,就断开这个连接。Android本来并不允许APP去监听home键事件,所以我们没发像iOS那样通过监听home键事件来做对应的处理。不过还好Android的Activity的生命周期给我们提供了一种解决这个问题的方法,我们只需要在每个Activity的onStart和onStop中去维持一个计数,如果这个数值大于0,就表示我们的APP还有Activity是在前台运行的,等
xiangzhihong
2018/01/30
9850
检查Android是否具有摄像头
通常我们进行摄像头操作,如扫描二维码需要判断是否有后置摄像头(Rear camera),比如Nexus 7 一代就没有后置摄像头,这样在尝试使用的时候,我们需要进行判断进行一些提示或者处理。
技术小黑屋
2018/09/04
1K0
shell脚本 检查文件是否被修改
1.进行检测目录的添加,可以多个目录 2.添加定时任务,可以一分钟一次,有改动会输出改动情况 #!/bin/bash #2020-3-14 #监测文件是否被修改脚本 #监测目录 dir_file=(/etc) file_list=/usr/local/file_list.txt error_file=/usr/local/error_list.txt display_path() { for i in `ls` do if [[ -d $i ]];then             cd $i    
陈不成i
2021/06/23
2.3K0
点击加载更多

相似问题

rethinkdb检查是否存在记录

35

如何检查分片是否存在?

20

如何检查分片是否存在

71

Android:检查分片是否可见

30

如何检查集群分片是否正常启动?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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