小弟初次接触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!!
分享到:
相关推荐
总的来说,这个压缩包组合提供了一套完整的解决方案,包括 Compass 搜索引擎框架、它依赖的 Lucene 库,以及专为中文文本设计的分词工具。这使得开发者能够轻松地在他们的 Java 应用程序中集成全文搜索功能,并支持...
Lucene提供了索引和搜索文本的能力,包括分词、文档分析和搜索算法等。在这个项目中,Compass作为Lucene的一个高级封装,使得开发者能够更便捷地利用Lucene的功能。 SSH(Struts、Spring、Hibernate)是一个经典的...
【Compass原理深入学习笔记】 Compass是一款基于Apache Lucene的全文搜索引擎框架,它为开发者提供了更高级别的抽象层,简化了搜索引擎的集成工作。在理解Compass之前,我们需要先了解全文检索的基本概念和原理。 ...
Compass搜索引擎技术是一种基于Lucene的全文检索框架,它提供了更高级别的API和集成机制,使得在Java应用程序中实现搜索引擎功能变得更加便捷。Compass的主要目标是将全文索引能力无缝地融入到现有的业务应用程序中...
- `index`:索引方式,如 `Index.NOT_ANALYZED` 表示不进行分词处理。 - `store`:是否存储原文,如 `Store.YES` 表示存储原文。 - **示例**: ```java @SearchableProperty(index = Index.NOT_ANALYZED, store ...
Compass全文检索系列之一:Compass入门 在IT领域,全文检索已经成为数据分析和信息检索的重要技术,尤其是在大数据时代。本文将介绍Compass,一个基于Lucene的全文搜索引擎库,为Java开发者提供了一种简单易用的...
这里`index = Index.TOKENIZED`表示属性值会被分词处理,`store = Store.YES`表示属性值会存储起来。 3. **关联关系** - **多对一关联**:`@ManyToOne` 用于表示与`ProductType`之间的多对一关联关系。 ```...
4. @Analyzer:用于指定字段的分析器,用于文本分词和过滤。 5. @Store:用于控制是否存储字段的原始值,以便于在查询结果中回显。 6. @Index:用于控制字段是否被索引,以及索引方式(如全文索引、非全文索引)。 7...
Compass除了支持英文,还提供了对其他语言的分词支持,如中文、法文等,这得益于Lucene的国际化和本地化能力。 8. **实时搜索** Compass支持实时索引,这意味着当数据库中的数据发生变化时,无需重启服务,索引会...
5. **多语言支持**:Compass内置了多种语言的分词器和分析器,能有效处理不同语言的文本。 6. **缓存机制**:为了提高性能,Compass支持缓存策略,如结果集缓存、元数据缓存等。 7. **热部署**:在运行时,Compass...
Lucene的核心功能包括分词、索引构建、查询解析、排序以及结果集的过滤和高亮。其索引结构基于倒排索引,能快速定位到包含特定词汇的文档,使得搜索性能卓越。在学习Lucene时,重点应掌握如何创建索引、执行查询以及...
它提供了索引和搜索大量文本数据的能力,包括分词、分析、存储和搜索等功能。Lucene 是纯 Java 库,可以方便地集成到各种 Java 应用中。 Compass 是基于 Lucene 构建的一个高级搜索引擎框架,它简化了 Lucene 的...
3. ***.cfg.xml** 文件用于配置COMPASS的索引存放路径、搜索引擎分词等信息。 虽然XML配置方式提供了极大的灵活性,但在实际开发过程中,注解配置方式因其简洁性而更受欢迎。特别是当项目中使用了Spring框架时,...
同时,Lucene的API也提供了丰富的功能,如分词器、过滤器等,用于优化索引质量和搜索性能。 至于“工具”标签,Compass提供了丰富的工具类和API,包括查询构造器、排序和高亮显示等,帮助开发者轻松实现搜索功能。...
2. 索引优化:根据业务需求,合理选择字段进行分词、分析,以提高搜索精确度。 3. 使用缓存:Compass的缓存策略可以优化索引读取和写入性能,避免频繁的磁盘操作。 通过以上步骤和技巧,我们可以将Compass有效地...
- **性能优化**: 如调整缓存策略,设置合理的分词器,以及使用过滤器来优化索引和查询性能。 - **安全性**: 确保只有授权的用户能够执行搜索和访问敏感数据。 - **扩展性**: 如果应用规模扩大,可能需要考虑分布式...
- `.cfg.xml`:配置Compass的Index存储位置、分词策略等。 #### Compass核心API详解 Compass的核心API设计受到了Hibernate的影响,因此其使用方式与Hibernate相似,主要包括以下接口: - **CompassConfiguration...
3. **分词器**:内置各种语言的分词器,将文本分解为可搜索的词元。 4. **过滤和分析**:支持对输入文本进行预处理,如去除停用词、词干提取等,以提高搜索效果。 5. **查询解析**:能够解析用户输入的查询字符串,...