标签: hibernate-search

Lucene:找到所有以特定前缀开头的单词

我想获得Lucene索引中以特定前缀开头的所有单词的列表.我一直在寻找一种方法来查询索引中的术语(我需要术语,我不关心它们来自哪些文档),但没有成功.有任何想法吗?

lucene search hibernate hibernate-search

2
推荐指数
1
解决办法
1144
查看次数

这个简单的HQL语法有什么问题吗?

您好我正在尝试执行这个简单的HQL查询,以使用以下方法从我的数据库中获取文件列表:

private static final String SQL_GET_FILE_LIST = "select filename, size, id, type from fileobject";

@Override
public List<FileObject> getFileList(String type) {
    // TODO Auto-generated method stub
    List<FileObject> files = hbTemplate.find(SQL_GET_FILE_LIST);
    hbTemplate.flush();
    return files;
}
Run Code Online (Sandbox Code Playgroud)

但我一直得到这个例外:

  org.hibernate.hql.ast.QuerySyntaxException: fileobject is not mapped [select filename, size, id, type from fileobject]
    org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:158)
    org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:87)
    org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:70)
    org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:257)
    org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056)
    org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
    org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
    org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
    org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
    org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
    org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
    org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
    org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
    org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
    org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
    org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
    org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
    org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
    org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
    org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:923)
    org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
    org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
    org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:921)
    org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:913)
    com.kc.models.DbFileHelper.getFileList(DbFileHelper.java:65)
    com.kc.models.FileHelper.getFileList(FileHelper.java:108)
    com.kc.Controllers.AppListController.getFileList(AppListController.java:63)
    com.kc.Controllers.AppListController.handleRequest(AppListController.java:34)
    org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) …
Run Code Online (Sandbox Code Playgroud)

java orm hibernate hibernate-search

2
推荐指数
1
解决办法
1119
查看次数

FullTextHibernateSessionProxy is not visible from class loader

I have run into a very strange error that I can´t wrap my head around. I´m running Seam 2.2.1.CR2 and JBoss 4.3.0.GA. My application consist of 3 modules:

application.xml

<display-name>CoolWebApp</display-name>
    <module id="EJB3">
        <ejb>EJB3.jar</ejb>
    </module>
    <module id="WEB">
        <web>
            <web-uri>WEB.war</web-uri>
            <context-root>/</context-root>
        </web>
    </module>
    <module>
        <ejb>jboss-seam-2.2.1.CR2.jar</ejb>
    </module>
Run Code Online (Sandbox Code Playgroud)

The following bean is scheduled and should run asynchronously. It resides in my EJB3 module:

package com.coolwebapp.indexing;

import org.apache.commons.lang.time.DateUtils;
import org.jboss.seam.Component;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import …
Run Code Online (Sandbox Code Playgroud)

java seam hibernate-search

2
推荐指数
1
解决办法
3554
查看次数

如何注释以允许使用Hibernate Search搜索List <String>字段

假设我有一个域对象,如下所示:

@Entity
@Indexed
public class Thingie implements DomainObject {  

private Long id;        
private Integer version;

private String title;    
private List<String> keywords = new Vector<String>();    

@Id
@GeneratedValue
public Long getId() {
    return id;
}
public void setId(Long id) {
    this.id = id;
}

@Version
public Integer getVersion() {
    return version;
}
public void setVersion(Integer version) {
    this.version = version;
}

@Column(length=64, nullable=false)
@Field(index=Index.TOKENIZED,store=Store.NO)
public String getTitle() {
    return title;
}
public void setTitle(String title) {
    this.title = title;
}


@ElementCollection
    // …
Run Code Online (Sandbox Code Playgroud)

java hibernate hibernate-search

2
推荐指数
1
解决办法
3213
查看次数

Hibernate搜索(商店和索引)

@Field上index = Index.YES和store = Store.YES的内涵是什么?最后(当执行搜索时)是否会从数据库加载此数据(搜索索引并从数据库加载结果)?为什么我也要将数据存储在索引中呢?

或者我的理解错了吗?

java hibernate-search

2
推荐指数
1
解决办法
3047
查看次数

Hibernate Search(Lucene索引)如何工作?

我正在使用基于Lucene索引构建的Hibernate Search.如果针对数据库表创建索引,则返回结果的性能将很好.

我的问题是,一旦创建了索引,如果我们查询结果,Hibernate Search是否使用创建的索引从原始数据库表中获取结果?或者它不需要命中数据库来获取结果?

谢谢!

java lucene hibernate hibernate-search

2
推荐指数
1
解决办法
4213
查看次数

使用hibernate-search索引Enum类型字段

当我想要使用的索引是Enum类型时,我在使用Hibernate搜索时遇到问题.

以下是我的应用程序的示例:

@Entity
@Indexed
public class MyEntity{
   @Id
   @Field 
   public Long id;
   @Field(bridge=@FieldBridge(impl=EnumBridge.class))
   public Flavour flavour;
}
Run Code Online (Sandbox Code Playgroud)

public enum Flavour {
  vanilla,
  chocolate,
  strawberry,
  pistacchio;
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用这种类型的查询查找所有实例.

QueryBuilder qb = [~] ;
Query q = qb.keyword().onField("flavour").matching(Flavour.vanilla).createQuery();
Run Code Online (Sandbox Code Playgroud)

当我测试这个时,结果总是空的.我甚至试图用Luke看到索引的内容,我似乎没有找到"味道".在提交更改后,我会对所有内容进行重新索引.除了枚举字段之外,其他任何类型的索引工作和查询都能完美地工作.

我已经试过几乎任意组合norms,analyze,index,store,...的的@Field注释(我用用Hibernate 4.3.1休眠搜索4.5.x).

我究竟做错了什么?我应该看的任何设置?欢迎任何帮助.

java lucene hibernate hibernate-search

2
推荐指数
1
解决办法
2446
查看次数

java.lang.ClassNotFoundException:org.hibernate.annotations.common.reflection.ClassLoadingException

我使用spring junit测试,但是我在所有测试中都收到了这条错误消息,因为我更新了我的Hibernate Search,Hibernate和Springframework.在pom.xml中我包含了来自Hibernate的common.annotations,我也可以在我的库(maven依赖)中找到它,它应该包含在类路径中.但似乎我的测试仍然无法找到课程.

这是pom.xml配置:

<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.3.5.Final</version>

    </dependency>
    <dependency>
        <artifactId>hibernate-core</artifactId>
        <groupId>org.hibernate</groupId>
        <version>4.3.5.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-search</artifactId>
        <version>5.0.0.Alpha3</version>
    </dependency>


    <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-queryparser</artifactId>
        <version>4.7.2</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

Caused by: java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ClassLoadingException
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1402)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:397)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842)
    at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:152)
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:336)
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549)
    ... 40 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.annotations.common.reflection.ClassLoadingException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 51 more
Run Code Online (Sandbox Code Playgroud)

spring hibernate hibernate-search maven

2
推荐指数
1
解决办法
2万
查看次数

休眠搜索vs弹簧数据solr,弹簧数据弹性搜索

我有一个Spring Boot,Spring Data JPA(休眠)Web应用程序,想要引入文本搜索功能。

我了解以下内容

  • 休眠搜索或spring-data- *都可以集成到我的应用中

  • 休眠搜索可以与嵌入式Lucene或外部弹性搜索一起使用。

  • 外部弹性搜索/ Solr有其自身的优势,但我可以接受

    嵌入式也从这里开始。

我的问题

  • 哪个库更易于开发和维护。
  • 我看到solr vs elasticsearch的许多优缺点,但是需要Hibernate search vs spring-data- *的优点和缺点
  • 我找到了一个在现有应用程序中引入Hibernate Search的示例。但spring-data-上没有任何内容,如何在spring-data-中重新索引或触发现有数据库数据的索引

hibernate-search spring-data spring-data-jpa spring-data-solr spring-data-elasticsearch

2
推荐指数
1
解决办法
1025
查看次数

与hibernate-search-orm与其他依赖项发生冲突

在pom.xml文件中添加org.hibernate依赖项时出现问题

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.xxx</groupId>
    <artifactId>get-user-permissions</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
        <relativePath /> 
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>jdk.tools</groupId>
            <artifactId>jdk.tools</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.5</version><!--$NO-MVN-MAN-VER$ -->
        </dependency>    

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.0</version><!--$NO-MVN-MAN-VER$ -->
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.5</version>
        </dependency> …
Run Code Online (Sandbox Code Playgroud)

java hibernate-search spring-boot

2
推荐指数
1
解决办法
984
查看次数