浏览:1422008-07-16 16:44   来自乐逍遥      :
各位好:我是用的lucene.net2  假设我要查询包含"广西政务"的所有的数据,在查询的数据集里面有"广西柳州政务公司" ,可是,我为什么查询不到结果呢,我采用的是中文的一元分词.
楼主
  1个月前   eaglet      :
把查询部分的代码贴上来看看
1楼 回到顶楼 
  1个月前   乐逍遥      :
//模拟数据
private DataTable CreateData()
{
DataTable dt = new DataTable();
DataColumn[] dc = new DataColumn[2];
dc[0] = new DataColumn("bianhao");
dc[1] = new DataColumn("xingming");
dt.Columns.AddRange(dc);

DataRow dr = dt.NewRow();
dr["bianhao"] = "1";
dr["xingming"] = "广西柳州政务有限公司";

DataRow dr1 = dt.NewRow();
dr1["bianhao"] = "1";
dr1["xingming"] = "广西政务有限公司";

dt.Rows.Add(dr);
dt.Rows.Add(dr1);

return dt;
}

//创建索引
public IndexWriter CreateIndex()
{
IndexWriter writer = new IndexWriter("e:/index/", new ChineseAnalyzer(), true);
try
{
//建立索引字段
DataTable dt = CreateData();

foreach (DataRow dr in dt.Rows)
{
Document doc = new Document();
doc.Add(new Field("bianhao", dr["bianhao"].ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
doc.Add(new Field("xingming", dr["xingming"].ToString(), Field.Store.YES, Field.Index.TOKENIZED));
writer.AddDocument(doc);
}

writer.Optimize();
writer.Close();
}
catch (Exception e)
{
throw e;
}
return writer;
}

//查询
public Hits seacher(string queryString)
{
Hits hits = null;
try
{
IndexSearcher mysea = new IndexSearcher("e:/index/");
QueryParser queryParse = new QueryParser("xingming", new ChineseAnalyzer());


Query QUE = queryParse.Parse(queryString);


hits = mysea.Search(QUE);
}
catch (Exception e)
{
throw e;
}
return hits;
}

2楼 回到顶楼 
  1个月前   乐逍遥      :
你好,上面是我的代码,麻烦你给看一下,多谢了
3楼 回到顶楼 

注册用户登录后才能回复,登录注册
> 返回“Lucene.Net”


其他话题

相关链接
1 11223