muh*_*hif 4 .net c# lucene lucene.net
我是Lucene.NET的新手.我正在添加字段
Field.Index.NOT_ANALYZED
Run Code Online (Sandbox Code Playgroud)
在Lucene文档中.有一个默认字段在文档中添加为
Field.Index.ANALYZED
Run Code Online (Sandbox Code Playgroud)
我在搜索默认字段时没有任何困难; 但是当我搜索特定字段时,Lucene返回0文档.但是,如果我改变,
Field.Index.NOT_ANALYZED
Run Code Online (Sandbox Code Playgroud)
至
Field.Index.ANALYZED
Run Code Online (Sandbox Code Playgroud)
事情正常.我认为与Analyzer有关.任何人都可以指导我如何搜索一个Field.Index.NOT_ANALYZED字段吗?
以下是我创建查询解析器的方法:
QueryParser parser =
new QueryParser(
Version.LUCENE_30,
"content",
new StandardAnalyzer(Version.LUCENE_30));
Run Code Online (Sandbox Code Playgroud)
sis*_*sve 12
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").
| 归档时间: |
|
| 查看次数: |
5398 次 |
| 最近记录: |