加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在Lucene.NET中搜索Field.Index.NOT_ANALYZED字段?

发布时间:2020-12-16 00:08:25 所属栏目:百科 来源:网络整理
导读:我是Lucene.NET的新手.我正在添加字段 Field.Index.NOT_ANALYZED 在Lucene文档中.有一个默认字段在文档中添加为 Field.Index.ANALYZED 我在搜索默认字段时没有任何困难;但是当我搜索特定字段时,Lucene返回0文档.但是,如果我改变, Field.Index.NOT_ANALYZED
我是Lucene.NET的新手.我正在添加字段

Field.Index.NOT_ANALYZED

在Lucene文档中.有一个默认字段在文档中添加为

Field.Index.ANALYZED

我在搜索默认字段时没有任何困难;但是当我搜索特定字段时,Lucene返回0文档.但是,如果我改变,

Field.Index.NOT_ANALYZED

Field.Index.ANALYZED

事情正常.我认为与Analyzer有关.任何人都可以指导我如何搜索Field.Index.NOT_ANALYZED字段吗?

以下是我创建查询解析器的方法:

QueryParser parser = 
    new QueryParser(
        Version.LUCENE_30,"content",new StandardAnalyzer(Version.LUCENE_30));

解决方法

ANALYZED只表示该值在被索引之前通过Analyzer传递,而NOT_ANALYZED表示该值将按原样索引.后者意味着像“hello world”这样的值将被编入索引,就像字符串“hello world”一样.但是,QueryParser类的语法将空格解析为term-separator,创建两个术语“hello”和“world”.

如果您创建了一个var q = new TermQuery(new Term(field,“hello world”))而不是调用var q = queryParser.Parse(field,“hello world”),您将能够匹配该字段.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读