lucnene多条件搜索-lucene多条件搜索时or与and问题

问题描述

lucene多条件搜索时or与and问题

lucene版本:3.6
分词器:ansj_seg-master

在lucene多条件搜索时,想根据两个字段去做搜索,创建的Query如下所示

    Analyzer analyzer = new AnsjAnalysis();
    String paramsStr[] = new String[] { "CA0000001", "特惠" };
    String keys[] = new String[] {"code", "name" };
    BooleanClause.Occur occur[] = new BooleanClause.Occur[] { BooleanClause.Occur.MUST,
            BooleanClause.Occur.MUST};
    Query query = MultiFieldQueryParser.parse(Version.LUCENE_36, paramsStr, keys,
            occur, analyzer);

索引中确定有code为"CA0000001",name为"特惠"的数据,但就是为BooleanClause.Occur.MUST时找不到,如果为BooleanClause.Occur.SHOULD,则可以查询到那条数据

请问各位要怎么解决?

解决方案

should戴表两个字段中必须有一个..must是必须都存在...你看看大小写啥的..有可能建索引的时候全都小写了

解决方案二:

分词器是全都转换成小写的,所以肯定是统一了的

解决方案三:

好像发现问题了,MultiFieldQueryParser是分词查询,而建索引时那个code字段是Index.NOT_ANALYZED的,所以不行。感谢ansj提醒

时间: 2024-09-26 14:24:00

lucnene多条件搜索-lucene多条件搜索时or与and问题的相关文章

Thinkphp搜索时首页分页和搜索页保持条件分页的方法_php实例

本文实例讲述了Thinkphp实现搜索时首页分页和搜索页保持条件分页的方法.分享给大家供大家参考.具体实现方法如下: 在做搜索查询时突然发现在首页用的分页代码在搜索页使用时出现错误,首页分页代码(代码中标注start与end部分为分页代码) 复制代码 代码如下: public function index(){   $res=D('Info');// 实例化Data数据对象   /**********start************/   import('ORG.Util.Page');//

基于Lucene的Java搜索服务器Elasticsearch安装使用教程_java

一.安装ElasticsearchElasticsearch下载地址:http://www.elasticsearch.org/download/ ·下载后直接解压,进入目录下的bin,在cmd下运行elasticsearch.bat 即可启动Elasticsearch ·用浏览器访问: http://localhost:9200/   ,如果出现类似如下结果则说明安装成功: { "name" : "Benedict Kine", "cluster_nam

【转载】lucene整理 -- 概念 搜索 排序

    [摘录] http://blog.csdn.net/xiaoping8411/article/details/5409940   lucene整理1 -- 概念 分类: lucene2010-03-23 22:34 52人阅读 评论(0) 收藏 举报 1.    概述 Lucene是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎.Lucene以其方便使用.快速实施以及灵活性受到广泛的关注.它可以方便地嵌入到各种应用中实现针对应用的全文索引.检索功能,本总结使用lucene--2.

c# 4.0-C# Lucene.Net对搜索结果添加超链接

问题描述 C# Lucene.Net对搜索结果添加超链接 我用lucene.net实现了搜索,想对标题添加超链接,就是点击标题后出现文档内容.我对文档的标题和内容是放在不同的域中分别存储的.我用下面的代码可以实现链接,但是只是在搜索内容的时候可以点开,都正常.但是如果搜索的关键字在标题中,就不能打开链接,而且搜出来的题目显示也不对,会把代码里的链接显示出来(比如我搜的是生物,结果显示就成了:_生物.xml"target=__blank">生物.xml_).怎么回_事?_ 解决方案

几种常见的基于Lucene的开源搜索解决方案对比

一  直接使用 Lucene  ( http://lucene.apache.org ) 说明:Lucene 是一个 JAVA 搜索类库,它本身并不是一个完整的解决方案,需要额外的开发工作 优点:成熟的解决方案,有很多的成功案例.apache 顶级项目,正在持续快速的进步.庞大而活跃的开发社区,大量的开发人员.它只是一个类库,有足够的定制和优化空间:经过简单定制,就可以满足绝大部分常见的需求:经过优化,可以支持 10亿+ 量级的搜索. 缺点:需要额外的开发工作.所有的扩展,分布式,可靠性等都需要

Lucene 多条件查询是用must not报错,请大家看看可能是什么原因

问题描述 Lucene多条件查询是用mustnot报错了,使用must没问题,请大家指点:报错信息:atorg.apache.lucene.util.OpenBitSetDISI.inPlaceAnd(OpenBitSetDISI.java:66)atorg.apache.lucene.search.BooleanFilter.getDocIdSet(BooleanFilter.java:102)atorg.apache.lucene.search.IndexSearcher.searchWit

我用lucene做的搜索,单独搜索一个a,没有结果,搜索其他的字符b,c,d均没有问题,请问是什么原因??

问题描述 我用lucene做的搜索,单独搜索一个a,没有结果,搜索其他的字符b,c,d均没有问题,请问是什么原因?? 解决方案 解决方案二:这个应该是分词的结果造成的,也就是说在你的文档里面,a不是一个单词,但是bcd都是一个单词,明白?解决方案三:有道理...

LucenePlus 1.2 发布,基于 Lucene 的全文搜索框架

LucenePlus 1.2 发布了,这是一款基于 Lucene 的全文搜索框架. 更新如下: 优化代码结构.更加易用简洁 增加字段支持 float,binary,double,text 自定义 query 查询 排序重新定义 增加 LucenePlus 数据源.更清晰明了.随意切换 文章转载自 开源中国社区 [http://www.oschina.net]

使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序

server|web|程序|全文搜索 使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序 Andrew B. CenciniMicrosoft Corporation 2002年12月 适用于:    Microsoft SQL Server 2000摘要:学习如何充分利用 SQL Server 2000 的全文搜索功能.本文包含有关实现最大吞吐率和最佳性能的几点提示和技巧. 目录简介 全文搜索功能简介 配置全文搜索功能 全文查询 排位和优化 其他