sphinx简介Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。Sphinx可以非常容易的与SQL数据库和脚本语言集成。当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从标准输入...
分类:
其他好文 时间:
2014-11-08 19:28:47
阅读次数:
425
高级查询
在介绍了更多的高级映射功能之后,是时候回顾一下之前介绍过的查询功能了,看看如何借助这些高级的映射功能来使用一些高级的查询功能。本文会通过以下几个方面进行介绍:
如何在不和数据库进行任何交互的前提下,借助Lucene的力量来动态的筛选结果如何通过使用基于投影(Projection)的查询来获取需要的属性,从而避免与数据库的交互如何使用分面搜索(Faceted Search)对搜...
分类:
Web程序 时间:
2014-11-05 10:54:41
阅读次数:
339
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。尽管Web搜索是漫游Internet的基本要求, 但是现有web搜索引擎的数目却在下降. 并且这很有可能进一步演变成为一个公司垄断了几乎所有的web搜索为其谋取商业利益.这显然 不...
分类:
其他好文 时间:
2014-11-05 10:30:05
阅读次数:
139
解析(Analysis)
当一个实体域被Lucene索引时,往往还会经历一个语法分析(Parsing)和转换(Conversion)的步骤,这些步骤被称为解析。在前文中,我们提到过Hibernate Search会默认对字符串类型的实体域进行分词,而这个分词过程就需要用到解析器(Analyzer)。在需要对实体域进行排序的场合,需要禁用这个默认的分词行为。
在解析过程中,还可以借助Ap...
分类:
Web程序 时间:
2014-11-04 11:09:20
阅读次数:
279
如何在MySQL中获得更好的全文搜索结果 很多互联网应用程序都提供了全文搜索功能,用户可以使用一个词或者词语片断作为查询项目来定位匹配的记录。在后台,这些程序使用在一个SELECT 查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数...
分类:
数据库 时间:
2014-11-03 23:51:09
阅读次数:
237
MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持外键。每张MyISAM表存放在三个文件中:frm 文件存放表格定义;数据文件是MYD (MYData);索引文件是MYI (MYIndex)...
分类:
数据库 时间:
2014-11-03 22:46:17
阅读次数:
261
高级映射
前面介绍的可搜索的域基本上都是字符串类型,实际上可搜索的类型是非常丰富的。
本文会介绍以下几个方面的内容:
Lucene对实体进行索引的过程借助Solr组件对这个过程的改进修改域的重要程度,从而让基于相关度的排序更加有意义动态决定是否对一个实体类型进行索引
桥接器(Bridges)
实体类型中可以使用的类型是无穷无尽的,但是对于Lucene索引而言,任何类型...
分类:
Web程序 时间:
2014-11-03 11:36:55
阅读次数:
301
基础查询
目前我们只用到了基于关键字的查询,实际上Hibenrate Search DSL还提供了其它的查询方式,下面我们就来一探究竟。
映射API和查询API
对于映射API,我们可以通过使用Hibernate提供的注解来完成映射工作,同时我们也可以使用JPA提供的注解来完成。类似的,对于查询API,我们也可以从Hibernate和JPA提供的查询API中进行选择。每种方式都有...
分类:
Web程序 时间:
2014-11-02 12:29:50
阅读次数:
281
实体类型映射
在上一篇文章中,简要介绍了如何使用Hibernate Search来对一个实体进行全文搜索。
然而,在真实的应用中,实体与实体之间的关系也许更为复杂。为了对复杂实体进行搜索,就需要让底层的Lucene查询也能够理解这些关系。
下图反映了Database,Hibernate,Hibernate Search和Lucene之间的关系:...
分类:
Web程序 时间:
2014-11-01 09:47:43
阅读次数:
306
初识Hibernate Search
要让你的应用具备Hibernate Search赋予的全文搜索的能力,需要做以下三件事:
给项目添加必要的依赖和配置信息给你的实体类添加必要的信息,从而让Lucene知道如何对它们进行索引(Indexing)在需要的地方使用符合Hibernate Search规范的查询来完成业务逻辑
对于需要添加的依赖信息,会在以后进行介绍。我们首先来看看代...
分类:
Web程序 时间:
2014-10-31 10:08:17
阅读次数:
335