利用Lucene.net搜索引擎进行多条件搜索的做法

1 联合两个索引查询,已解决:
IndexSearcher[] searchers = new IndexSearcher[2]; 
  
searchers[0] = new IndexSearcher(m_indexpath);
searchers[1] = new IndexSearcher(m_outindexpath);

MultiSearcher multiSearcher = new MultiSearcher(searchers);

2,还有个进行多条件搜索 and 与 or 的操作————
用 MultiFieldQueryParser
建议重新封装
MultiFieldQueryParser.Parser(p[],d[],f[],analyer)  成or 与 and操作合一
或者
BooleanQuery m_BooleanQuery = new BooleanQuery();
Query query = QueryParser.Parse(m_SearchText, "INSTRUMENT_NAME", analyzer);
Query query2 = QueryParser.Parse(m_SearchText2, "INSTRUMENT_NAME2", analyzer);
m_BooleanQuery.Add(query, true, false);
m_BooleanQuery.Add(query2, true, false);
3.
http://blog.sina.com.cn/u/4964dd65010007g6这篇文章讲的是lucene如何实现的 模糊查询,此文主要是如何实现 多条件(and or not)查询
copy code hh~~~~·····
String []key=new String[]{"北京","华","男"};
String[] fields = { Static.CITY,Static.AREA,Static.SEX};
BooleanClause.Occur []flags=new BooleanClause.Occur[]{BooleanClause.Occur.MUST,BooleanClause.Occur.MUST,BooleanClause.Occur.SHOULD};
条件关系 MUST(and) SHOULD(or) NOT_MUST(not)
调用函数: Query query=MultiFieldQueryParser.parse(key, fields, flags, analyzer);
这样就ok啦

你可能感兴趣的:(利用Lucene.net搜索引擎进行多条件搜索的做法)