栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

无法使用lucene IndexWriter.deleteDocuments(term)删除文档

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

无法使用lucene IndexWriter.deleteDocuments(term)删除文档

您的问题出在分析仪中。

SimpleAnalyzer
将标记定义为 字母的
最大字符串(
StandardAnalyzer
或什至
WhitespaceAnalyzer
是更典型的选择),因此要索引的值将分为多个标记:“ b”,“
a”,“ b”,“ d”,“
f”。您定义的delete方法虽然不会通过分析器,但只会创建一个原始术语。如果您尝试将其替换为以下内容,则可以看到它的作用
main


generateIndex("5836962b0293a47b09d345f1");query("5836962b0293a47b09d345f1");delete("b");query("5836962b0293a47b09d345f1");

通常,查询和术语等 进行分析,而QueryParser进行分析。

对于(看起来像)标识符字段,您可能根本不想分析此字段。在这种情况下,请将其添加到FieldType中:

fieldType.setTokenized(false);

然后,您将不得不更改查询(再次进行QueryParser分析),并

TermQuery
改为使用。

Query query = new TermQuery(new Term("_id", id));


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419562.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号