zoukankan      html  css  js  c++  java
  • 利用Boost影响Lucene查询结果的排序


    以下代码在Lucene2.1下通过,主要是通过设置Document的Boost来影响文档的权重,以达到控制查询结果顺序的目的(前提是不利用Sort排序的情况下):

    private void btnSearch_Click(object sender, EventArgs e)
            
    {
                RAMDirectory ramDir 
    = new RAMDirectory();
                IndexWriter iw 
    = new IndexWriter(ramDir,new StandardAnalyzer(),true);

                
    string[] NameList = "you are my friend""you are my wife""I love you" };
                
    string[] FileList = "1""2""3" };

                
    for (int i = 0; i < NameList.Length; i++)
                
    {
                    Document doc 
    = new Document();
                    doc.Add(
    new Field("name", NameList[i], Field.Store.YES, Field.Index.TOKENIZED));
                    doc.Add(
    new Field("file", FileList[i], Field.Store.YES, Field.Index.TOKENIZED));

                    
    if (i == 2{ doc.SetBoost(2.0f); }//这里设置了第三个文档优先级最高,所以在搜索出来的结果中,该文档排在最前
                    iw.AddDocument(doc);
                }

                iw.Close();

                IndexSearcher _searcher 
    = new IndexSearcher(ramDir);
                QueryParser _parser 
    = new QueryParser("name",new StandardAnalyzer());
                Query  _query 
    = _parser.Parse("you");
                Hits hitDoc 
    = _searcher.Search(_query);

                lstResult.Items.Clear();
    //lstResult为一个ListBox

                
    for (int i = 0; i < hitDoc.Length(); i++)
                
    {
                    Document doc 
    = hitDoc.Doc(i);
                    lstResult.Items.Add(doc.Get(
    "file"+ " " + doc.Get("name"));
                }
                
                _searcher.Close();
            }
    以下是运行结果
    作者:菩提树下的杨过
    出处:http://yjmyzz.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    浙大《数据结构》第二章:线性结构
    浙大《数据结构》第一章:基本概念
    《软技能:代码之外的生存指南》读书笔记
    《高质量程序设计指南》读书笔记
    《大话无线通信》读书笔记
    使用Tensorflow训练神经网络模型
    掌握功率谱估计的方法
    网络安全宣传周活动
    ICMP数据包
    DNS数据包
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1025059.html
Copyright © 2011-2022 走看看