首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每个字段使用不同的分析器

每个字段使用不同的分析器
EN

Stack Overflow用户
提问于 2010-05-16 09:00:02
回答 3查看 6.8K关注 0票数 23

如何为Lucene索引的文档中的每个字段启用不同的分析器?示例:

代码语言:javascript
运行
AI代码解释
复制
        RAMDirectory dir = new RAMDirectory();
        IndexWriter iw = new IndexWriter(dir, new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_CURRENT), true, IndexWriter.MaxFieldLength.UNLIMITED);
        Document doc = new Document();
        Field field1 = new Field("field1", someText1, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS);
        Field field2 = new Field("field2", someText2, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS);
        doc.Add(field1);
        doc.Add(field2);
        iw.AddDocument(doc);
        iw.Commit();

分析器是IndexWriter的一个参数,但是我想对field1使用StandardAnalyzer,对field2使用SimpleAnalyzer,我该怎么做呢?当然,在搜索时也是如此。必须为每个字段应用正确的分析器。

EN

回答 3

Stack Overflow用户

发布于 2010-05-16 11:12:12

PerFieldAnalyzerWrapper就是你要找的东西。在Lucene.net中与此等效的是here

票数 29
EN

Stack Overflow用户

发布于 2013-07-10 09:18:33

代码语言:javascript
运行
AI代码解释
复制
Map<String, Analyzer> analyzerMap = new HashMap<String, Analyzer>();
analyzerMap.put(fieldone, new IKAnalyzer4PinYin(false, IKAnalyzer4PinYin.PINYIN));
analyzerMap.put(fieldtwo, new IKAnalyzer4PinYin(false, KAnalyzer4PinYin.PINYIN_SHOUZIMU));
PerFieldAnalyzerWrapper wrapper = new PerFieldAnalyzerWrapper(new IKAnalyzer4PinYin(false), analyzerMap);

IndexWriterConfig iwConfig = new IndexWriterConfig(Version.LUCENE_40 , wrapper);
票数 10
EN

Stack Overflow用户

发布于 2020-06-24 10:51:51

亡灵法术。

对于C#:

代码语言:javascript
运行
AI代码解释
复制
Lucene.Net.Util.LuceneVersion version = Lucene.Net.Util.LuceneVersion.LUCENE_48;

Dictionary<string, Lucene.Net.Analysis.Analyzer> fieldAnalyzers = 
    new Dictionary<string, Lucene.Net.Analysis.Analyzer>(System.StringComparer.OrdinalIgnoreCase);

fieldAnalyzers["YourFieldName"] = new Lucene.Net.Analysis.Core.KeywordAnalyzer();

Lucene.Net.Analysis.Miscellaneous.PerFieldAnalyzerWrapper wrapper = 
    new Lucene.Net.Analysis.Miscellaneous.PerFieldAnalyzerWrapper(
        new Lucene.Net.Analysis.Core.KeywordAnalyzer(), fieldAnalyzers);

Lucene.Net.Index.IndexWriterConfig writerConfig = new Lucene.Net.Index.IndexWriterConfig(version, wrapper);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2843124

复制
相关文章
【玩转服务器】Redis密码设置
Redis配置文件为/etc/redis/6379.conf(默认安装路径,实际路径以命令显示为准),查找关键字“requirepass”,会发现默认设置为
参谋带个长
2022/05/14
4.4K0
Redis实现参数的集中式管理【面试+工作】
分布式缓存Redis也提供了类似的发布订阅功能,并且Redis本身提供了缓存和持久化的功能,本文将介绍通过Redis实现简单的参数集中式管理。
Java帮帮
2018/12/05
4780
php redis设置过期的键,redis 设置键过期时间[通俗易懂]
PEXPIRE key milliseconds 将键 key 的生存时间设置为指定的毫秒数。
全栈程序员站长
2022/11/09
3.6K0
redis设置不过期_redis设置key的过期时间命令
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
2.4K0
redis如何设置定时过期_redis 设置过期时间[通俗易懂]
1、设置过期时间功能:即对存储在 redis 数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的 token 或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理方式,一般都是自己判断过期,这样无疑会严重影响项目性能。我们 set key 的时候,都可以给一个 expire time,就是过期时间,通过过期时间我们可以指定这个 key 可以存活的时间。
全栈程序员站长
2022/11/09
5K0
LiveNVR流媒体服务Onvif/RTSP平台支持云端录像服务器上面集中录像存储在部署的服务器上集中存储
LiveNVR可接入传统监控行业里面的高清网络摄像机的RTSP直播流,及 RTMP、HTTP-FLV、M3U8等其它直播流, 实现互联网直播分发;可分发多种格式流,HTTP-FLV/WS-FLV/RTMP/RTSP/WebRTC/HLS。支持GB28181注册级联到第三方国标平台; 同时能实时云端存储、录像计划、检索、时移回放
Marvin1311
2022/08/01
2.1K0
Redis需要代理吗?
前面我们聊到redis根据AKF拆分理论根据Y、Z轴拆分的相关知识,相信大家对redis扩展有了一定认识。
灬沙师弟
2023/07/08
2780
Redis需要代理吗?
空闲云主机的妙用:作服务器的集中网管
经常有同事提到空闲的云主机,能否针对不同的客户使用起来?今天我们用Zabbix这个开源的监控软件搭建线下服务器的监控平台,充分将云资源用起来,随时随地可以监测线下设备的运行状况。
希望的田野
2020/02/19
1.1K0
windows redis设置密码_redis如何设置密码及验证密码
1.redis-cli.exe(或redis-cli.exe -h 127.0.0.1 -p 6379 -a 密码)
全栈程序员站长
2022/10/04
7.1K0
Redis大量的 key 需要设置同一时间过期,一般需要注意什么?
在Redis中,可以使用EXPIRE、PEXPIRE、EXPIREAT、PEXPIREAT等命令来设置key的过期时间。当需要大量的key在同一时间过期时,有以下几个需要注意的方面:
用户1289394
2023/08/22
1.1K0
Redis大量的 key 需要设置同一时间过期,一般需要注意什么?
Redis安全 | 权限设置
到V6.0版本为止, Redis的安全设置共有两种方式, 一种是通过requirepass设置密码, 第二种是通过ACL进行更精确的安全设置.
一个架构师
2022/06/27
4.8K0
Redis 设置密码登录
redis在生产环境中通常都会设置密码以保证一定的安全性,本篇blog就简单记录一下如何在redis中设置客户端登录密码。
全栈程序员站长
2022/07/08
4.3K0
Redis 设置密码登录
redis设置过期时间
redis是在内存中进行缓存的,我们在设置redis缓存时,可以设置下过期时间。那么在设置时间到期后redis是如何进行数据删除的。
Tim在路上
2020/08/04
2.9K0
Redis设置开机启动
在目录 /lib/systemd/system 下新建文件 redis.service :
Petrochor
2022/06/07
5290
redis中密码设置
   在配置文件中有个参数: requirepass  这个就是配置redis访问密码的参数;
ydymz
2018/09/10
2.9K0
Redis 设置过期时间
Redis 中有个设置时间过期的功能,即对存储在 redis 数据库中的值可以设置一个过期时间。
happyJared
2019/08/23
4.1K0
Redis设置开机启动
在目录 /lib/systemd/system 下新建文件 redis.service :
用户8851537
2021/08/19
3.1K0
对于Redis中设置了过期时间的Key,你需要知道这些内容「建议收藏」
熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除。
全栈程序员站长
2022/02/17
1.2K0
redis常用操作,redis操作键值,redis安全设置
之前已经介绍过redis里各种数据类型的赋值操作,在这里则介绍一下各个数据类型的其他常用的操作。
端碗吹水
2020/09/23
2.2K0
redis如何设置密码及验证密码_redis设置永不过期
这里简单介绍一下redis如何设置密码 redis密码设置有两种方式,一种需要重启redis服务,一种不需要重启redis服务。
全栈程序员站长
2022/08/03
6.2K0
redis如何设置密码及验证密码_redis设置永不过期

相似问题

如何在Redis排序集中设置对象?

12

从一个redis集中查找不属于另一个redis集中的值

14

表示Redis集中的空集

12

Redis排序集中的大数

15

多集中的Redis删除元素

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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