`
mniz
  • 浏览: 31000 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

compass 的分词

阅读更多
小弟初次接触compass ,在网上找了写参考资料写了一个简单的查询,有些疑惑,还希望大家帮助下 谢谢。。

1.采用庖丁分词,但是出现不能支持中文分词,用中文搜索的话,什么都没有

怀疑是配置文件哪里写错了
paoding-analysis.properties
paoding.imports=ifexists\:classpath\:paoding-analysis-default.properties;ifexists\:classpath\:paoding-analysis-user.properties;ifexists\:classpath\:paoding-knives-user.properties


我这里是默认的,没有修改,我把辞典放到tomcat 目录下里面了

2.我给数据库添加了一些数据 (以name属性查找)
+----+------------+--------+-------+-------------+
| id | name       | brank  | price | description |
+----+------------+--------+-------+-------------+
|  9 | 12         | 12     |    12 | 12          |
| 10 | 123        | 132    |    12 | 12          |
| 11 | 1243       | 132    |    12 | 12          |
| 12 | 12423      | 132    |    12 | 12          |
| 13 | 12         | 12132  |    12 | 12          |
| 14 | 12         | 12132  |    12 | 1212        |
| 15 | 12         | 12132  |    12 | 11212212    |
| 16 | 1          | 12132  |    12 | 11212212    |
| 17 | 2          | 12132  |    12 | 11212212    |
| 18 | 2345       | 12132  |    12 | 11212212    |
| 19 | 245        | 12132  |    12 | 11212212    |
| 20 | zhangsan   | wangwu |    11 | 1212        |
| 21 | zhangsan2  | wangwu |    11 | 1212        |
| 22 | 2zhangsan2 | wangwu |    11 | 1212        |
| 23 | zhangsan22 | wangwu |    11 | 1212        |
| 24 |        | wangwu |    11 | 1212        |
+----+------------+--------+-------+-------------+


搜索1的时候只出现一条数据
搜索12的时候只出现name 为12的数据

compass.xml 文件
<property name="classMappings">
			<list>
				<value>com.compass.product.model.Product</value>
			</list>
		</property>
		
		<property name="compassConfiguration" ref="annotationConfiguration"></property>
	
		<property name="compassSettings">
			<props>
				<prop key="compass.engine.connection"> file://c:/compass</prop>
				<prop key="commpass.transaction.factory">
					org.compass.spring.transaction.SpringSyncTransactionFactory
				</prop>
				<prop  
					key="compass.engine.analyzer.default.type">
					net.paoding.analysis.analyzer.PaodingAnalyzer
				</prop>
				<prop
                    key="compass.engine.highlighter.default.formatter.simple.pre">
                    <![CDATA[<font color="red"><b>]]>
                </prop>
                <prop
                    key="compass.engine.highlighter.default.formatter.simple.post">
                    <![CDATA[</b></font>]]>
                </prop>
			</props>
		</property>
		
		<property name="transactionManager" ref="transactionmanager"></property>
	</bean>


有关分词器的配置
compass.engine.analyzer.default.type
compass.engine.analyzer.MMAnalyzer.CustomAnalyzer

如果我采用上面一个 默认的,分词搜索zhangsan 的时候,只要有zhangsan的数据都能搜出来
如果采用下面一个,就好象是按照名字查询一样 ,准备的查找,只能出现一条record

以上是主要的困惑,希望了解的能帮下忙  thanks!!
分享到:
评论
2 楼 mniz 2008-12-25  
怎么没人回复下,我自己顶下

刚才解决了几个问题

不能查出中文是我的错,Mysql的编码不是utf8 改过之后可以了

创建索引那个地方我也修改了下,不采用name属性查询 用sesssion.find("");
但是出现新的分词问题:

采用庖丁解牛分词

我在数据输入  :中华人民共和国
搜索关键字   :中华
结果         :“什么都没有”
输入中华人民共和国  :可以出现

但是有时候又没?怎么回事啊

我已经改了编码,但是偶尔还是出现乱码

我在action 里面相应的也该了编码
汗。。哪位达人能告诉下没
1 楼 mniz 2008-12-25  
在补充一点,怎么配置才能支持中文呢,怎么搜索都不支持中文

是不是我配置错误?

而且我在控制台只看到一条hql语句,以前用纯粹的lucene 不是只有一条,这个怎么只有一条

引用

begin create index....
2008-12-25 13:25:02 org.compass.core.lucene.engine.analyzer.LuceneAnalyzerManager buildAnalyzers
信息: Building analyzer [default]
2008-12-25 13:25:02 org.compass.core.lucene.engine.highlighter.LuceneHighlighterManager configure
信息: Building highlighter [default]
Hibernate: select this_.id as id0_0_, this_.name as name0_0_, this_.brank as brank0_0_, this_.price as price0_0_, this_.description as descript5_0_0_ from product.product this_ order by this_.id asc
2008-12-25 13:25:03 org.compass.core.impl.DefaultCompass close
信息: Closing Compass [compass]
2008-12-25 13:25:03 org.compass.core.impl.DefaultCompass close
信息: Closed Compass [compass]
2008-12-25 13:25:03 org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager start
信息: Starting scheduled optimizer [class org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer] with period [10000ms]
2008-12-25 13:25:03 org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager start
信息: Starting scheduled index manager with period [60000ms]
2008-12-25 13:25:03 org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager start
信息: Starting scheduled refresh cache with period [5000ms]
crate index is over....703


相关推荐

    compass2.1.4包+所用lucene包+中文分词器

    总的来说,这个压缩包组合提供了一套完整的解决方案,包括 Compass 搜索引擎框架、它依赖的 Lucene 库,以及专为中文文本设计的分词工具。这使得开发者能够轻松地在他们的 Java 应用程序中集成全文搜索功能,并支持...

    compass完整可用项目

    Lucene提供了索引和搜索文本的能力,包括分词、文档分析和搜索算法等。在这个项目中,Compass作为Lucene的一个高级封装,使得开发者能够更便捷地利用Lucene的功能。 SSH(Struts、Spring、Hibernate)是一个经典的...

    Compass原理深入学习笔记

    【Compass原理深入学习笔记】 Compass是一款基于Apache Lucene的全文搜索引擎框架,它为开发者提供了更高级别的抽象层,简化了搜索引擎的集成工作。在理解Compass之前,我们需要先了解全文检索的基本概念和原理。 ...

    compass搜索引擎技术

    Compass搜索引擎技术是一种基于Lucene的全文检索框架,它提供了更高级别的API和集成机制,使得在Java应用程序中实现搜索引擎功能变得更加便捷。Compass的主要目标是将全文索引能力无缝地融入到现有的业务应用程序中...

    compass_使用详解.pdf compass_教程 compass_试用案例

    - `index`:索引方式,如 `Index.NOT_ANALYZED` 表示不进行分词处理。 - `store`:是否存储原文,如 `Store.YES` 表示存储原文。 - **示例**: ```java @SearchableProperty(index = Index.NOT_ANALYZED, store ...

    Compass全文检索系列之一:Compass入门

    Compass全文检索系列之一:Compass入门 在IT领域,全文检索已经成为数据分析和信息检索的重要技术,尤其是在大数据时代。本文将介绍Compass,一个基于Lucene的全文搜索引擎库,为Java开发者提供了一种简单易用的...

    java搜索 compass资料

    这里`index = Index.TOKENIZED`表示属性值会被分词处理,`store = Store.YES`表示属性值会存储起来。 3. **关联关系** - **多对一关联**:`@ManyToOne` 用于表示与`ProductType`之间的多对一关联关系。 ```...

    compass annotation关联关系

    4. @Analyzer:用于指定字段的分析器,用于文本分词和过滤。 5. @Store:用于控制是否存储字段的原始值,以便于在查询结果中回显。 6. @Index:用于控制字段是否被索引,以及索引方式(如全文索引、非全文索引)。 7...

    compass对象搜索引擎

    Compass除了支持英文,还提供了对其他语言的分词支持,如中文、法文等,这得益于Lucene的国际化和本地化能力。 8. **实时搜索** Compass支持实时索引,这意味着当数据库中的数据发生变化时,无需重启服务,索引会...

    compass 全文搜索

    5. **多语言支持**:Compass内置了多种语言的分词器和分析器,能有效处理不同语言的文本。 6. **缓存机制**:为了提高性能,Compass支持缓存策略,如结果集缓存、元数据缓存等。 7. **热部署**:在运行时,Compass...

    Lucene+compass学习资料

    Lucene的核心功能包括分词、索引构建、查询解析、排序以及结果集的过滤和高亮。其索引结构基于倒排索引,能快速定位到包含特定词汇的文档,使得搜索性能卓越。在学习Lucene时,重点应掌握如何创建索引、执行查询以及...

    使用compass+lucene实现简单的全文检索功能

    它提供了索引和搜索大量文本数据的能力,包括分词、分析、存储和搜索等功能。Lucene 是纯 Java 库,可以方便地集成到各种 Java 应用中。 Compass 是基于 Lucene 构建的一个高级搜索引擎框架,它简化了 Lucene 的...

    COMPASS介绍

    3. ***.cfg.xml** 文件用于配置COMPASS的索引存放路径、搜索引擎分词等信息。 虽然XML配置方式提供了极大的灵活性,但在实际开发过程中,注解配置方式因其简洁性而更受欢迎。特别是当项目中使用了Spring框架时,...

    Compass+ lucene 通用代码(脱离数据库)

    同时,Lucene的API也提供了丰富的功能,如分词器、过滤器等,用于优化索引质量和搜索性能。 至于“工具”标签,Compass提供了丰富的工具类和API,包括查询构造器、排序和高亮显示等,帮助开发者轻松实现搜索功能。...

    Compass与Struts2SpringHibernate的整合示例

    2. 索引优化:根据业务需求,合理选择字段进行分词、分析,以提高搜索精确度。 3. 使用缓存:Compass的缓存策略可以优化索引读取和写入性能,避免频繁的磁盘操作。 通过以上步骤和技巧,我们可以将Compass有效地...

    Compass全文检索完整实例,可运行

    - **性能优化**: 如调整缓存策略,设置合理的分词器,以及使用过滤器来优化索引和查询性能。 - **安全性**: 确保只有授权的用户能够执行搜索和访问敏感数据。 - **扩展性**: 如果应用规模扩大,可能需要考虑分布式...

    compass入门指南

    - `.cfg.xml`:配置Compass的Index存储位置、分词策略等。 #### Compass核心API详解 Compass的核心API设计受到了Hibernate的影响,因此其使用方式与Hibernate相似,主要包括以下接口: - **CompassConfiguration...

    compass+lucene

    3. **分词器**:内置各种语言的分词器,将文本分解为可搜索的词元。 4. **过滤和分析**:支持对输入文本进行预处理,如去除停用词、词干提取等,以提高搜索效果。 5. **查询解析**:能够解析用户输入的查询字符串,...

Global site tag (gtag.js) - Google Analytics