使用Lucene.Net添加排序功能

时间:2014-07-31 10:52:19

标签: c# asp.net-mvc-3 lucene.net

我正在使用我的电子商务网站中的Lucene.Net实施搜索。我想根据用户选择的标准按结果排序。它可能是名称,价格,折扣,新来源等

我的代码

var sortBy = new Lucene.Net.Search.Sort(new Lucene.Net.Search.SortField("Name", Lucene.Net.Search.SortField.STRING, true));

            //var parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_30, "Name", analyzer);
            //Query searchQuery = parser.Parse(query);
            //TopDocs hits = searcher.Search(searchQuery, int.MaxValue);

            //Sort sort=new Sort

            //TopDocs hits = searcher.Search(QueryMaker(query, searchfields, storeId), int.MaxValue);
            TopFieldDocs hits = searcher.Search(QueryMaker(query, searchfields, storeId),null,int.MaxValue,sortBy);


            int results = hits.TotalHits;
            Product searchResult = null;

            if (results < limit)
                limit = results;

            //if (limit == 0)
              //  limit = int.MaxValue;

            for (int i = (pagenumber*limit) + 1; i <= ( ( pagenumber * limit ) + limit); i++)
            {
                try
                {
                    Document doc = searcher.Doc(hits.ScoreDocs[i-1].Doc);

                    searchResult = new Product();
                    searchResult.Id = Convert.ToInt32(doc.Get("Id"));
                    searchResult.Name = doc.Get("Name");
                    searchResult.SeName = doc.Get("SeName");
                    searchResult.StoreId = Convert.ToInt32(doc.Get("StoreId"));


                    searchResults.Add(searchResult);
                    searchResult = null;
                }
                catch (Exception ae)
                {

                }
            }

但这不会给我预期的结果,也不会使用其名称

对产品进行排序

任何解决方案

0 个答案:

没有答案