`
ruanyu1
  • 浏览: 2294 次
  • 性别: Icon_minigender_1
  • 来自: 江西
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

COmpass+庖丁解牛分词,有人遇到中文问题吗?

阅读更多
使用庖丁能够分词并且建立索引,但是不能搜索中文,只能搜索英文和数字,例如:标题为《数学最后冲刺135分》,搜数学没有结果,搜135就能搜索出来。能添加数据库,没有乱码,统一utf-8
下面是被搜索的实体:
package com.compass.test;

import org.compass.annotations.Index;
import org.compass.annotations.Searchable;
import org.compass.annotations.SearchableId;
import org.compass.annotations.SearchableProperty;

@Searchable
public class Book {
	
	@SearchableId
	private String id;

	@SearchableProperty(analyzer="PaodingAnalyzer", index=Index.TOKENIZED)
	private String title;
	
	@SearchableProperty(name="author", index=Index.NOT_ANALYZED)
	private String author;
	
	@SearchableProperty(name="price", index=Index.NOT_ANALYZED)
	private float price;

	public Book(){}
	
	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}
	
	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getAuthor() {
		return author;
	}

	public void setAuthor(String author) {
		this.author = author;
	}

	public float getPrice() {
		return price;
	}

	public void setPrice(float price) {
		this.price = price;
	}
	
}

这是测试搜索类:
package com.compass.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import org.compass.core.Compass;
import org.compass.core.CompassSession;
import org.compass.core.config.CompassConfiguration;
import org.compass.core.support.search.CompassSearchCommand;
import org.compass.core.support.search.CompassSearchHelper;
import org.compass.core.support.search.CompassSearchResults;
import org.compass.gps.CompassGpsDevice;
import org.compass.gps.device.hibernate.HibernateGpsDevice;
import org.compass.gps.impl.SingleCompassGps;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class CompassSimpleDemo {

	public static void main(String[] args) {
		SessionFactory sessionFactory = new Configuration().configure()
						.buildSessionFactory();
		
		Compass compass = new CompassConfiguration().configure().addClass(
				Book.class).buildCompass();
		
		SingleCompassGps compassGps = new SingleCompassGps(compass);
		CompassGpsDevice compassGpsDevice = new HibernateGpsDevice("hibernate",
							sessionFactory);
		compassGps.addGpsDevice(compassGpsDevice);
		compassGps.start();
		
		CompassSession compassSession = compass.openSession();
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String query = "";
		try {
			query = br.readLine();
		} catch (IOException e) {
			e.printStackTrace();
		}
		CompassSearchHelper searchHelper = new CompassSearchHelper(compass, 10);
		CompassSearchResults results = searchHelper.search(
							new CompassSearchCommand(query, 0));
		
		System.out.println();
		
		System.out.println("==分页信息==");
		System.out.println("结果总数--->" + results.getTotalHits());
		System.out.println("页数--->" + results.getPages().length);
		System.out.println("当前分页结果数--->" + results.getHits().length);
		System.out.println("搜索耗时--->" + results.getSearchTime()+"ms");
		
		System.out.println();
		
		System.out.println("==商品记录信息==");
		for(int i=0; i<results.getTotalHits(); i++) {
			System.out.println("id--->" + ((Book)results.getHits()[i].getData()).getId());
			System.out.println("标题--->" + ((Book)results.getHits()[i].getData()).getTitle());
			System.out.println("作者--->" + ((Book)results.getHits()[i].getData()).getAuthor());
			System.out.println("价格--->" + ((Book)results.getHits()[i].getData()).getPrice());
			System.out.println("=====================================");
		}

		
		compassSession.close();
		compass.close();
	}

}


大家帮忙看看,网上是在找不到解答。















分享到:
评论

相关推荐

    Lucene+compass+spring+jdbc+庖丁的一个例子

    标题中的“Lucene+compass+spring+jdbc+庖丁的一个例子”揭示了这是一个关于整合多个技术来构建一个搜索系统的示例。在这个系统中,我们有以下几个关键组件: 1. **Lucene**: Apache Lucene 是一个高性能、全文本...

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

    中文分词器是处理中文文本的关键组件,因为中文不像英文那样有明显的空格分隔单词。"中文分词器"在这里指的可能是 "je-analysis-1.5.1.jar",这是一个专门针对中文的分析工具,用于将中文文本分解成有意义的词汇(词...

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

    《Compass+Lucene:构建高效全文搜索引擎》 在信息技术高速发展的今天,数据量的爆炸式增长使得传统的数据库查询方式面临着挑战。此时,全文搜索引擎以其快速、高效的特性,成为了处理大量非结构化文本数据的首选...

    compass+ibatis+spring+struts2整合开发

    compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发

    compass+lucene

    Compass和Lucene是两个非常重要的Java开源搜索引擎库,它们在处理海量数据的搜索和索引方面发挥着关键作用。让我们深入探讨这两个组件的核心概念、功能以及它们如何协同工作。 **Compass** 是一个基于Apache Lucene...

    compass+ssh2集成 hibernategps问题

    标题中的“compass+ssh2集成 hibernategps问题”指的是在Java开发中,开发者尝试将Compass搜索引擎库与SSH2(Spring、Struts和Hibernate)框架整合时遇到的问题,特别是与Hibernate的GPS(Global Persistent ...

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

    Compass 和 Lucene 是两个在 Java 开发环境中广泛使用的全文搜索引擎工具。它们可以帮助开发者构建高效、强大的文本搜索功能。本文将详细介绍如何使用 Compass 和 Lucene 实现一个简单的全文检索功能。 首先,...

    [sass+compass+susy+源码实战]css设计师指南

    【Sass + Compass + Susy:CSS 设计师的实战指南】 Sass 是一个 CSS 预处理器,它扩展了 CSS 的功能,让编写样式表变得更加高效和模块化。通过使用变量、嵌套规则、混合(mixins)、函数等特性,Sass 能够帮助...

    COMPASS+spring构建自己的搜索引擎.pdf

    标题提及的"COMPASS+spring构建自己的搜索引擎"是关于如何使用Compass搜索引擎框架与Spring框架集成,构建一个自定义的全文搜索引擎。Compass是一个开源的搜索引擎库,它提供了与ORM框架(如Hibernate)的集成,使得...

    Compass+SSH搜索引擎简单项目

    【SSH+Compass搜索引擎简单项目】是一个基于Struts2(S),Hibernate(H)和Spring(S)的Java Web应用程序,结合了Compass搜索引擎库,用于实现对数据库中两个表的高效检索功能。这个项目旨在提供一个清晰易懂的...

    Lucene+compass学习资料

    《深入探索Lucene+Compass技术与Ajax应用》 在当今的互联网开发中,数据检索和实时交互性已经成为不可或缺的功能。Lucene作为一个强大的全文搜索引擎库,为开发者提供了高效的文本搜索能力;Compass作为Lucene的一...

    完整compass工程+建库sql+学习资料

    `compass学习笔记.doc`是一份关于Compass的学习文档,可能包含了使用Compass的基本步骤,常见问题解答,以及一些最佳实践。这份文档对于理解Compass的工作原理和实际应用是非常有价值的。 `lucene总结.chm`和`...

    mongoDB Compass+api-ms-win-crt-runtimel1-1-0.dll文件.rar

    解决这个问题的方法有以下几种: 1. 安装更新:确保操作系统和所有系统更新都已安装,尤其是针对VC++运行时的更新。 2. 安装VC++运行时库:可以从Microsoft官方网站下载适用于你系统的Visual C++ Redistributable ...

    compass完整可用项目

    【compass完整可用项目】是一个基于特定技术栈的软件开发项目,该项目的核心是Compass库,一个与Lucene紧密集成的全文搜索引擎工具。Compass提供了一种简单的方式来在Java应用程序中集成全文搜索功能,使得开发者...

Global site tag (gtag.js) - Google Analytics