Lucene.NET多字段 多条件搜索


使用 MultiFieldQueryParser 可以指定多个搜索字段。

Query query = MultiFieldQueryParser.Parse("name*", new string[] { FieldName, FieldValue }, analyzer);

IndexReader reader = IndexReader.Open(directory);

IndexSearcher searcher = new IndexSearcher(reader);

Hits hits = searcher.Search(query);

多条件搜索

除了使用 QueryParser.Parse 分解复杂的搜索语法外,还可以通过组合多个 Query 来达到目的。

Query query1 = new TermQuery(new Term(FieldValue, "name1")); // 词语搜索

Query query2 = new WildcardQuery(new Term(FieldName, "name*")); // 通配符 

//Query query3 = new PrefixQuery(new Term(FieldName, "name1")); // 字段搜索 Field:Keyword,自动在结尾添加 *

//Query query4 = new RangeQuery(new Term(FieldNumber, NumberTools.LongToString(11L)), new Term(FieldNumber, NumberTools.LongToString(13L)), true); // 范围搜索

//Query query5 = new FilteredQuery(query, filter); // 带过滤条件的搜索

 

BooleanQuery query = new BooleanQuery();

query.Add(query1, BooleanClause.Occur.MUST);

query.Add(query2, BooleanClause.Occur.MUST);

 

IndexSearcher searcher = new IndexSearcher(reader);

Hits hits = searcher.Search(query);

本文来自周建军的技术博客,转载请标明出处。

posted on 2011-07-21 10:46 放逐忧伤 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/navy235/archive/2011/07/21/2112508.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值