`

luence

 
阅读更多
@SuppressWarnings({ "unchecked", "deprecation" })
    public static List<Goods> SearchForContent(String indexPath, String keyword, int start, int max,
            String orderByField, String orderByType) throws Exception
    {
   
        List<Goods> goodsList = new ArrayList<Goods>();
        String path = indexPath + "index";
        IndexSearcher indexSearcher = new IndexSearcher(path);
        IndexSearcher indexSearchers[] = { indexSearcher };
        MultiSearcher searcher = new MultiSearcher(indexSearchers);
        if (searcher != null)
        {
            String[] fields = { "saleName", "advertiseWords" };
            BooleanClause.Occur[] clauses = { BooleanClause.Occur.SHOULD, BooleanClause.Occur.SHOULD };
            Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
            keyword = LabelUtil.filter(keyword);
            Query query = MultiFieldQueryParser.parse(keyword, fields, clauses, analyzer);
            boolean orderby = true;
            if ("asc".equalsIgnoreCase(orderByType))
            {
                orderby = false;
            }
            SortField sortField = new SortField(orderByField, orderby);
            Sort sort = new Sort(sortField);
            Hits top = null;
            if ("sales".equals(orderByField))
            {
                top = searcher.search(query);
            }
            else
            {
                top = searcher.search(query, sort);
            }
            SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter(LS, LE);
            Highlighter highlighter = new Highlighter(simpleHTMLFormatter, new QueryScorer(query));
            highlighter.setTextFragmenter(new SimpleFragmenter(100));
            if (max > top.length())
                max = top.length();
            for (int i = start; i < max; i++)
            {
                Document doc = top.doc(i);
                List<Field> list = doc.getFields();
                Goods good = new Goods();
                for (Field d : list)
                {
                    String filedName = d.name();
                    String value = d.stringValue();
                    if ("goodsId".equals(filedName))
                    {
                        String goodsId = RequestUtil.VailStr(value, "");
                        good.setGoods_id(Long.parseLong(goodsId));
                    }
                    if ("saleName".equals(filedName))
                    {
                        String filterStr = LabelUtil.filter(RequestUtil.VailStr(d.stringValue(), ""));
                        String highliStr = highlighter.getBestFragment(LuceneContacts.analyzer, d.name(), filterStr);
                        if (StringUtil.isEmpty(highliStr))
                        {
                            good.setSale_name(RequestUtil.VailStr(value, ""));
                        }
                        else
                        {
                            good.setSale_name(highliStr);
                        }
                    }
                    if ("name".equals(filedName))
                    {
                        good.setName(RequestUtil.VailStr(value, ""));
                    }
                    if ("advertiseWords".equals(filedName))
                    {
                        String filterStr = LabelUtil.filter(RequestUtil.VailStr(d.stringValue(), ""));
                        String highliStr = highlighter.getBestFragment(LuceneContacts.analyzer, d.name(), filterStr);
                        if (StringUtil.isEmpty(highliStr))
                        {
                            good.setAdvertise_words(RequestUtil.VailStr(value, ""));
                        }
                        else
                        {
                            good.setAdvertise_words(highliStr);
                        }
                    }
                    if ("price".equals(filedName))
                    {
                        if (value != null && !"".equals(value) && !"null".equals(value))
                        {
                            good.setPrice(new BigDecimal(value));
                        }
                        else
                        {
                            good.setPrice(new BigDecimal(0));
                        }
                    }
                    if ("onShelfTime".equals(filedName))
                    {
                        Date date = null;
                        if (value != null && !"".equals(value))
                        {
                            date = new Date(RequestUtil.FormatDaeHH(value));
                        }
                        good.setOn_shelf_time(date);
                    }
                    if ("primaryPicName".equals(filedName))
                    {
                        good.setPrimaryPicName(RequestUtil.VailStr(value, ""));
                    }
                    if ("imgPath".equals(filedName))
                    {
                        good.setImgPath(RequestUtil.VailStr(value, ""));
                    }
                    if ("picType".equals(filedName))
                    {
                        good.setPicType(RequestUtil.VailStr(value, ""));
                    }
                }
                goodsList.add(good);
            }
            searcher.close();
        }
        return goodsList;
    }
分享到:
评论

相关推荐

    luence客户端测试软件luke

    "luence客户端测试软件luke" 指的是一个名为"Luke"的工具,它是针对Apache Lucene(一个流行的全文搜索引擎库)的客户端测试和分析工具。Luence可能是“Lucene”的拼写错误,但在这里我们假设指的是Lucene。 **描述...

    Luence和ElasticSearch面试准备.docx

    《Luence和ElasticSearch面试准备》 Lucene和ElasticSearch是两个在全文搜索引擎领域中广泛使用的开源工具。Lucene是一个高性能、全文本搜索库,而Elasticsearch则是在Lucene的基础上构建的一个分布式、RESTful风格...

    Luence.net搜索小程序

    《Luence.net搜索小程序深度解析》 在信息技术日益发达的今天,搜索引擎已成为数据挖掘与信息检索的重要工具。本文将深入探讨一款基于.NET平台的搜索引擎——Luence.net,它以其高效、灵活的特点,为开发者提供了...

    获取全部Luence数据

    ### 获取全部Luence数据 #### 知识点详解 **Lucene** 是一个高性能、全功能的文本搜索引擎库。在本文档中,我们将探讨如何通过Lucene获取索引中的所有文档,包括创建索引、查询索引以及遍历所有文档的具体步骤。 ...

    Luence搜索Demo

    《Luence搜索Demo详解》 在信息技术领域,搜索引擎已经成为数据检索不可或缺的一部分,而Luence作为一款高性能、可扩展的全文搜索引擎库,深受开发者喜爱。本文将深入探讨基于.NET平台的Luence.Net搜索Demo,帮助...

    Luence原理及源码分析

    lucene 原理与分析,底层源码解析,应用场景及实践,相关配置

    IKAnalyzer和luence压缩包大全

    IKAnalyzer和Lucene是两个在中文处理领域广泛应用的开源项目。IKAnalyzer是一个专门针对中文的分词工具,而Lucene则是一个全文检索框架。这里我们深入探讨这两个组件以及它们的关联。 **IKAnalyzer** 是一个高性能...

    Luence的与盘古分词的使用软件

    总之,“Luence的与盘古分词的使用软件”是将Lucene.NET和盘古分词相结合,利用C# .NET技术在VS2013环境下构建的一款文本处理应用。它实现了对用户输入句子的分词,以及基于分词结果的索引查询,从而在大量文本数据...

    前后端分离的使用spring Mvc、 mybatis、 luence、 spring 开发的开源知识库系统的所有后端端源码

    在IT行业中,前后端分离是一种常见的软件开发模式,它将应用程序分为两个主要部分:前端(用户界面)和后端(服务器逻辑)。这种架构允许前端和后端开发人员独立工作,提高了开发效率,并提供了更好的可维护性和扩展...

    luence4.6例子

    5. **luence46**: 这个压缩包可能包含了Lucene 4.6版本的源代码,源码提供了深入了解其内部工作原理的机会。你可以通过阅读和分析源代码,学习如何实现自己的搜索功能,或者优化现有系统的搜索性能。 通过对...

    Luence简单实例

    在"Luence简单实例"中,我们可能会看到以下步骤的Java代码实现: 1. **创建索引**: 首先,需要创建一个`IndexWriter`对象,设置好索引目录和分析器。接着,通过`Document`对象添加字段,如`add(new Field("content...

    luence索引例子

    标题 "luence索引例子" 暗示我们要探讨的是Lucene,一个广泛使用的全文搜索引擎库,它在处理大量文本数据时提供了高效的检索能力。在这个例子中,我们将深入理解如何利用Lucene创建索引来优化数据库记录的搜索性能。...

    前后端分离项目使用的spring Mvc、 mybatis、 luence、 spring 开发的开源知识库系统的所有后端端源码.zip

    前后端分离项目使用的spring Mvc、 mybatis、 luence、 spring 开发的开源知识库系统的所有后端端源码。 下载可运行。 使用前后端分离架构, 使用springMvc 、 spring、 mybatis、 luence等技术开发的开源知识库所有...

    Luence in Action 中英文pdf 版

    《Lucene in Action》是一本深入探讨Apache Lucene的权威指南,这本书的中英文PDF版本提供了全面了解和学习这个搜索引擎库的机会。Lucene是Java开发的一款高性能、全文本搜索库,广泛应用于各种需要强大搜索功能的...

    Luence+Ikanalyzer+stopword+dic

    在搜索引擎和信息检索领域,Lucene是一个非常重要的开源全文搜索引擎库。它提供了高效的文本索引和搜索功能,被广泛应用于各种信息系统的后台。在Lucene中,为了提高搜索的准确性和效率,通常会使用到一些优化技术,...

    基于ajax与luence构建搜索引擎的设计和实现论文.doc

    基于 Ajax 与 Lucene 构建搜索引擎的设计和实现 摘要: 近年来,计算机技术的不断发展,人们已经把从互联网上获取需要的信息成为了一种生活习惯,这种行为便脱离不开搜索引擎的使用。然而 Lucene 现阶段搜索引擎...

    VerticalSearcher:基本的垂直搜索引擎,实现了基本的网络爬虫功能以及用Luence实现检索

    《构建垂直搜索引擎:VerticalSearcher与Lucene的实践》 在信息技术日新月异的今天,搜索引擎已经成为我们获取信息的重要工具。垂直搜索引擎是相对于通用搜索引擎而言的,它专注于某一特定领域,如科技、医疗或教育...

    人工智能-项目实践-搜索引擎-基本的垂直搜索引擎,实现了基本的网络爬虫功能以及用Luence实现检索

    《构建垂直搜索引擎:从爬虫到Lucene检索》 在当今信息爆炸的时代,搜索引擎成为了我们获取知识、解决问题的重要工具。本项目实践旨在介绍如何构建一个基础的垂直搜索引擎,该搜索引擎专注于某一特定领域的信息检索...

    luence搜索

    《深入理解Lucene搜索引擎》 Lucene,作为一个开源的全文搜索引擎库,被广泛应用于各种信息检索系统中。它提供了一套高效、灵活的文本搜索解决方案,使得开发者能够快速地在大量数据中实现高效的全文检索功能。...

Global site tag (gtag.js) - Google Analytics