lucene 子条件比父条件查询的数据多

比如 我以“test”作为搜索条件,结果查出3条数据
我又以“test1”作为搜索条件,结果查询出5条数据
不明白为什么是出现这种情况。

   public static void createCom() {
        LuceneDB lucene = new LuceneDB();
        IndexWriter writer = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        Connection conn = lucene.getConnection();
        long startQueryTime = new Date().getTime();
        String sql = "SELECT company_name,address,lxr FROM COMPANY_IMPORT3";
        try {
            System.out.println("开始查询...");
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            System.out.println("查询完成...");
            long endQueryTime = new Date().getTime();
            System.out.println("查询用时: " + (endQueryTime - startQueryTime));
            long startTime = new Date().getTime();
            writer = new IndexWriter(fille,analyzer, true, IndexWriter.MaxFieldLength.LIMITED);
            while(rs.next()){
                Document doc = new Document();
                //为字段 sname 建索引
                String company_name = Tools.removeNull(rs.getString("ADDRESS"));
                String address = Tools.removeNull(rs.getString("ADDRESS"));
                String lxr = Tools.removeNull(rs.getString("LXR"));
                doc.add(new Field("company_name",company_name,Field.Store.YES,Field.Index.ANALYZED,Field.TermVector.WITH_POSITIONS_OFFSETS));
                doc.add(new Field("address",address,Field.Store.YES,Field.Index.ANALYZED,Field.TermVector.WITH_POSITIONS_OFFSETS));
                doc.add(new Field("lxr",lxr,Field.Store.YES,Field.Index.ANALYZED,Field.TermVector.WITH_POSITIONS_OFFSETS));
                writer.addDocument(doc);
            }
            long endTime = new Date().getTime();
            System.out.println("创建索引,用时: " + (endTime - startTime) + " 毫秒!,索引存放位置:" + fille);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            try {
                DBHelper.closeResultset(rs,conn);
                writer.optimize();//索引优化
                if(writer!=null){
                    writer.close();    //关闭读写器
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 
        }
    }
    public static String QueryCom(String QueryString) {
        String[] fields = {"address","address","lxr"};
        JSONArray json = null;
        List list = null;
        Query query;
        try {
        Directory dir = FSDirectory.getDirectory(fille);
            IndexSearcher searcher = new IndexSearcher(dir);
            BooleanClause.Occur[] flags = new BooleanClause.Occur[] {BooleanClause.Occur.MUST};
            query = MultiFieldQueryParser.parse(QueryString, fields, flags, analyzer);
            TopDocs topDocs = searcher.search(query, 10);  
            list = new ArrayList();
            int num = 0;
            for(ScoreDoc scoreDoc : topDocs.scoreDocs){
                num++;
                Map<String,Object> map = new IgnoreKeyCaseMap<Object>();
                int DocId = scoreDoc.doc;
                Document doc = searcher.doc(DocId);
                String str= "";
                String com_name = doc.get("company_name");
                String address = doc.get("address");
                String lxr = doc.get("lxr");
                map.put("name", com_name);
                list.add(map);

            }
            System.out.println("========="+num);
            json = JSONArray.fromObject(list);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if(json == null)return "";
            return json.toString();

    }

1个回答

test和test1是两个单词,查询test1不会包含test的结果。不存在什么父子条件。
你在google搜索 search,难道返回的结果包含 research,甚至 researching 么?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Lucene的条件查询
MainTest文件(条件查询是最后的几个方法) 因为没有做Lucene的util,比较冗杂 package lucene; import java.io.File; import java.io.IOException; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; imp...
Lucene多条件及时间区间查询
项目需要增加时间区间查询,百度上查的方法RangerQuery、NumericRangerQuery在lucene6.0以后都不能用了。目前找到的是PointRangeQuery,属于core.jar( org.apache.lucene.search)。 希望可以为别的小伙伴节省时间 ........持续更新中  ...
删除多条件的数据?
有一个表:如下有很多数据rncard_id timern00012 2010-12-05 12:22:00rn00015 2011-02-12 18:58:00rn.rn.rn.rnrn现在要来删除这个表中card_id为00015,时间为每个星期六和星期天的所有数据和每天17:35分以后的数据。rn求高手解答,谢谢!!
Vue——父to子 子to父传值(三)
父to子 父亲组件绑定数据 v-bind:users2="users" 子组件获取 复合类型的话是传地址 普通类型传值 props:{ users2:{ type:Array, required:true, } }, 子to父 单击时调用这个方法 &lt;h1 v-on:click="changTitle"&gt;{{title1}}&lt;/h1&...
Vue组件通信(父→子)和(子→父)
从父组件向子组件通信,通过props传递数据: &amp;lt;div id=&quot;app&quot;&amp;gt; &amp;lt;my-component :message=&quot;msg&quot;&amp;gt;&amp;lt;/my-component&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;script&amp;gt; Vue.component('my-component',{ props:['message']
父&子
三十年看父贵子,三十年看子贵父
lucene多条件搜索时or与and问题
lucene版本:3.6rn分词器:ansj_seg-masterrnrn在lucene多条件搜索时,想根据两个字段去做搜索,创建的Query如下所示rnrn Analyzer analyzer = new AnsjAnalysis();rn String paramsStr[] = new String[] "CA0000001", "特惠" ;rn String keys[] = new String[] "code", "name" ;rn BooleanClause.Occur occur[] = new BooleanClause.Occur[] BooleanClause.Occur.MUST,rn BooleanClause.Occur.MUST;rn Query query = MultiFieldQueryParser.parse(Version.LUCENE_36, paramsStr, keys,rn occur, analyzer);rnrnrnrn索引中确定有code为"CA0000001",name为"特惠"的数据,但就是为BooleanClause.Occur.MUST时找不到,如果为BooleanClause.Occur.SHOULD,则可以查询到那条数据rnrn请问各位要怎么解决?
数据窗口的条件查询比SQL查询分析器慢
SQL 查询一张视图rnselect *rnfrom V_Inventory_search_Testrnwhere posting_date = '2010-4-6'rn--------------------------------------需要6秒rnDW 事务日期= '2010-4-6' ----需要10秒,这个是数据量比较小的情况rnrn1.数据窗口的条件查询比SQL查询分析器慢,尤其数据量大的时候rn2.数据窗口有时查询返回结果是0,要二次查询才能得到结果,再抽的时候数据还不完整rnrn请教怎么优化?rn
查询数据——条件查询(逻辑条件)
注重实践,剔除繁琐的理论,通过案例讲解我们常用的知识点,各个知识点之间相对独立,不用担心某一个知识点学不会而耽搁学其他的知识点。轻轻松松入门Mysql。
请教高人:Lucene多索引,多条件搜索的问题
现有多个索引(目录),分别为目录1,目录2。两个目录的document结构是不一样。rn目录1的Document有名字为Content的Field,目录2的Document有名字为Body的Field,rn现在需要同时搜索索引目录1,目录2,并且要同时搜索对应的Field : Content和Bodyrnrn我实现代码如下,但这样实现是有问题的(如果两个索引目录的document结构一样。是没有问题的)rnrnstring[] fields = "Content","Body" ;rnQuery query = MultiFieldQueryParser.Parse("我" , fields , new StandardAnalyzer()) ;rnrnIndexSearcher[] searchers = new IndexSearcher[2] ;rnsearchers[0] = new IndexSearcher(索引目录1) ;rnsearchers[1] = new IndexSearcher(索引目录2) ;rnrnMultiSearcher multiSearcher = new MultiSearcher(searchers) ;rnHits hits = multiSearcher.Search(query) ;rnrn有那位实现过类似的功能,望不吝赐教.rn谢谢rnrn在.net版问了N久都没回答,所以来Java版看看rnrnhttp://community.csdn.net/Expert/topic/4857/4857837.xml?temp=.2234156rn
lucene一个field多个条件查询
lucene模拟sql where in 查询demoimport java.io.File; import java.io.IOException; import java.util.ArrayList;import org.apache.lucene.document.Document; import org.apache.lucene.index.DirectoryReader; import
React组件间通信(父=>子)(子=>父)(子=>爷)(删除指定下标的数据)
&amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html lang=&quot;en&quot;&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt; &amp;lt
水晶报表多条件提取数据
我有一个报表,作用是筛选指定的定单,提取相关的内容并汇总出来。rnrn一般情况下会有几十个订单号要用户手动输入的,输完后要显示的内容分为两种,我原来的做法是在record filter中做一个选择rn第一种是 A = 'a' and B = 'b' , 第二种就是not A = 'a' and B = 'b' 这样预览一次只能显示一种内容。要显示第二种时就要刷新报表,并再手动输入一次这一堆订单号码,太浪费时间了。rnrn我现在想输入一次订单号后就能显示两种内容,只是要分开显示在不同页面上。要怎样设置?
JS前端数据多条件筛选
JS前端数据多条件筛选有时候也会需要在前端进行数据筛选,增强交互体验。当数据可用的筛选条件较多时,把逻辑写死会给后期维护带来很大麻烦。下面是我自己写的一个简单的筛选器,筛选条件可以根据数据包含的字段动态设置。
如何多条件分组数据!
各位高手!rn小弟碰见如下问题!rn现有数据:rn a b c drn上海 130 红色 大众rn北京 10 白色 通用rn天津 10 红色 长安rn上海 10 黄色 大众rn广州 50 白色 本田rn天津 60 红色 丰田rn上海 100 红色 丰田rnrn我要变成一下信息:rn上海 红色 大众130 丰田100rn北京 白色 通用10rn天津 红色 长安10 丰田60rn上海 黄色 大众10rn广州 白色 本田50rnrnrnrnrnrnrnrnrn
子组件调父组件数据
&lt;template&gt; &lt;div class="home"&gt; &lt;div class="home-search"&gt; &lt;div class="hs-left"&gt; &lt;img src="../../../static/img/home/map.png" class="img"&gt; &lt;spa...
组件、数据(父传子、子传父)的相互传递
构建组件三部曲: 1:构建一个组件: let parent = { template:`&amp;lt;div&amp;gt;我是组件&amp;lt;/div&amp;gt;`, }; 2:在父级标签中注册组件: new Vue({ el:&quot;#app&quot;, components:{ parent } }) 3:在父级标签中使用组件: &amp;lt;div id=&quot;app&quot;...
子组件无法更新父组件请求的数据
嘎嘎!大家下午好。不积跬步无以至千里,努力一点,等好东西来了,才接的住。 问题说明: 在父组件中index.vue请求的数据,每次会不停的更新,有可能今天是数据a,明天就是数据b了,所以也是希望子组件能够随即更新数据。 说说sessionStorage和vuex: vuex:项目小,自然有些大材小用了。所以不打算用vuex,但如果使用vuex一定更容易解决这个问题了。 sessionStorag...
vue2.0子组件调用父组件的数据
实例:child.vue文件,调用parent.vue的数据parent.vue如下:<template> <div> <div class="parent"> <p>父组件</p> <p v-text="userInfo.userName"></p> <router-link to='/parent/child'></router
vue-父组件获取子组件数据
父组件如何主动获取子组件上的数据?办法是通过$refs。 通过$refs我们可以在父组件上获取子组件上的数据。子组件:<div ref="dataList"></div>父组件:<child ref="whateverName"></child>在此我们就可以在父组件中 this.$refs.whateverName.dataList 就是子组件中的数据;dataList是子组件中保存了数据的名称
Vue父组件获取子组件数据
方法一、从父组件调用子组件方法获取数据 1、子组件addindex.vue写一个方法,返回要用的数据 methods: { // 父组件获取数据 getVal () { return this.procedure } } 2、在父组aindex.vue件中获取值 &lt;ProcedureEdit ref="procedureEdit"&gt;&lt...
VUE——父组件获取子组件的数据
refs访问组件实例 父组件是行为主体,父组件主动获取子组件数据 子组件通过方法公开只读数据 代码实例 // ParentComponent.vue &amp;amp;amp;lt;template&amp;amp;amp;gt; &amp;amp;amp;lt;div&amp;amp;amp;gt; &amp;amp;amp;lt;ChildComponent ref=&amp;amp;quot;child&amp;amp;quot;&amp;amp;amp;gt;&amp;amp;amp
子对话框获得父对话框的数据?
rn我建了一个有模对话框(类:CDlgFather),上面有个复选框(IDC_Check_HAVE),其对应的数据变量为m_blnHave。当点击有模对话框上一个按钮是弹出一个无模对话框,我想在该子对话框中获得复选框的值 ,这样为什么不可以?rnBOOL blnTemp;rnBlnTemp=CdlgFather.m_blnHave;rn错误提示是:illegal use of this type as an expression。rn我还有很多变量要从父对话框的变量中获得,该如何取呢?rn
子jsp和父jsp件数据的交互
子页面和父页面之间数据的交互(一个iframe就是一个jsp界面) 1:document.getElementById("info").contentWindow得到iframe对象后,就可以通过contentWindow得到iframe包含页面的window对象,然后就可以正常访问页面元素了; 2:$("#info")[0].contentWindow  如果用jquery选择
父、子控件 事件冲突
两种办法 1.设置里面控件的focusable为false <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button an
父分类和子分类问题
怎么实现只有现点击父分类子分类才会显示出来, rn下面的程序 把父分类和子分类都显示出来了。 rnFunction ClassList(ChannelID) rndim sql,rs,i,Q rnDim ClassID rnClassID=Trim(Request.QueryString("ClassID")) rnIF isnumeric(ClassID)<>True or ClassID="" Then rnClassID=0 rnEnd IF rnSql="select * from [Weed_Class] where ChannelID="&CInt(ChannelID)&" order by ClassList" rnSet rs=Execute(SQL) rnIf Not(rs.eof And rs.bof) Then rnDo While Not(rs.eof) rnTmp=Tmp&" " rnIf Rs("ClassID")=0 Then rnIf ClassID=Rs("ID") Then rnIsMe="style='color:#f00'" rnElse rnIsMe="" rnEnd If rnTmp=Tmp&""&Rs("ClassName")&"" rnElse rnFor I=1 To Rs("ClassDeep") rnTmp=Tmp&" " rnNext rnIf Int(Request.QueryString("ClassID"))=Rs("ID") Then rnIsMe="style='color:#f00'" rnElse rnIsMe="" rnEnd If rnTmp=Tmp&" "&Rs("ClassName")&"" rnEnd If rnTmp=Tmp&"" rnrs.movenext rnLoop rnEnd if rnSet rs=Nothing rnClassList=Tmp rnEnd Function
创建子父工程
什么是maven父子工程 ?其实看字面意思就很好理解了,就相当于一个家庭一样。一个家庭只会有一个父亲,但可能有多个子女(忽略干爹,,,)。父亲会管着子女,子女也可以继承父亲的优良传统~父子工程也一样。以下为我对于父子工程的一些理解。父工程:父工程又称为父控制器,只是一个简单的工程,不能单独运行。作用是将子模块跟子工程聚合在一起。父控制器中的pom.xml配置,在子模块跟子工程中都可以被继承。子工程...
父、子取值运用
如果子组件想使用父组件的data时: &amp;lt;div id=&quot;app&quot;&amp;gt; &amp;lt;aa :smsg=&quot;msg&quot;&amp;gt;&amp;lt;/aa&amp;gt; 先在标签中创建一个变量绑定父组件中的data中的属性 &amp;lt;/div&amp;gt; &amp;lt;script&amp;gt; Vue.component('aa',{ template:'&amp;lt;p&amp;gt;我
父与子的编程之旅
本书是一本家长与孩子共同学习编程的入门书。作者是一对父子,他们以Python语言为例,详尽细致地介绍了Python如何安装、字符串和操作符等程序设计的基本概念,介绍了条件语句、函数、模块等进阶内容,最后讲解了用Python实现游戏编程。书中的语言生动活泼,叙述简单明了。 为了让学习者觉得编程有趣,本书编排了很多卡通人物及场景对话,让学习者在轻松愉快之中跨入计算机编程的大门。
父与子学习python
安装 Python 非常容易。我们强烈建议你使用 Hello World 安装程序来安装使用本书所需的 Python 版本。推荐给python小白
父与子通信
&amp;lt;my-label labelName=&quot;用户名&quot;&amp;gt;&amp;lt;/my-label&amp;gt;这条数据my-login父级发给子级这条数据my-label子级接受到了props:['labelName'],这子级就接收到了&amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html&amp;gt; &amp;lt;head lang=&quot;en&quot;&amp;gt; &amp;lt;meta charset=
子与父组件的通信
【会员免费】链接 http://edu.csdn.net/lecturer/585 n右侧办理会员卡。办会员卡可咨询 QQ 1405491181 。 会员可免费学习已发布的全部课程,和在会员有效期内讲师新发布的全部课程 ,承诺每个月至少增加价值500元+ 的新课程。nReact.js 是 Facebook 推出的一个用来构建用户界面的 JavaScript 库。n然后当底层的数据变了,React 会自动处理所有用户界面的更新。nn当数据变化了,React 概念上是类似点击了更新的按钮,但仅会更新变化的部分。nn事实上,通过 React 你唯一要做的事情就是构建组件。(会员免费)
子父窗体操作
子父窗体操作 子父窗体操作 子父窗体操作 子父窗体操作
11.子→父通信
&amp;lt;body&amp;gt; &amp;lt;div id=&quot;sf&quot;&amp;gt; &amp;lt;bod&amp;gt;&amp;lt;/bod&amp;gt; &amp;lt;/div&amp;gt; //父 Vue.component('bod',{ template:` &amp;lt;div&amp;gt; &amp;lt;show v-on:showing=&quot;showing=true&quot;&amp;gt;&amp;l
父与子的编程之旅.zip
本书是一本家长与孩子共同学习编程的入门书。作者是一对父子,他们以Python语言为例,详尽细致地介绍了Python如何安装、字符串和操作符等程序设计的基本概念,介绍了条件语句、函数、模块等进阶内容,最后讲解了用Python实现游戏编程。书中的语言生动活泼,叙述简单明了。 为了让学习者觉得编程有趣,本书编排了很多卡通人物及场景对话,让学习者在轻松愉快之中跨入计算机编程的大门。
父与子的编程之旅.pdf
以Python语言为例,详尽细致地介绍了Python如何安装、字符串和操作符等程序设计的基本概念。
父与子的编程之旅python
经典Python入门教材,让你走入Python的大门,通俗易懂的讲解,让你感觉妙趣横生。
父与子的编程list
1.range(1,10,1)输出1,2,3...,10 range(1,10,-1)不输出 range(10,1,-1)输出10,9,8...,2 2.continue跳到当前循环的下一次迭代 break跳出当前循环 3. 列表有关 更改:直接让letter[2]=new 添加:letter.append(new)添加到最后一位,只能一个元素 let...
子父结构问题
[img=https://img-bbs.csdn.net/upload/201506/12/1434120291_883084.png][/img]rn[img=https://img-bbs.csdn.net/upload/201506/12/1434120302_469287.png][/img]rn如何没有父ID怎么才能添加?rn外键约束是不是设置错了?
子父窗体
我把一组按钮做成了一个用户控件,放在父窗体内,如何实现单击用户控件一个按钮时,使相应调出来的表单成为父窗体的子窗体??各位帮帮忙!!急啊!!
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池