当前位置: 首页 > 知识库问答 >
问题:

Hibernate lucene搜索包括“the”和“a”作为搜索的一部分

霍修筠
2023-03-14

问题是如果我在@field中使用了index=index.un_tokenized,那么就无法进行搜索。如果我使用了index.tokenized,那么我就不能用“the”和“a”进行搜索。

有人能给我一些指导吗?提前道谢。

下面是代码片段:

@Field(index = Index.UN_TOKENIZED, store = Store.NO)  <<< I've tried Index.TOKENIZED also.

@column(name=“title”)私有字符串标题;

要搜索的代码:FullTextEntityManager FullTextEntityManager=search.getFulltExtentityManager(entityManager);

QueryBuilder QueryBuilder=FulltExtentityManager.GetSearchFactory().BuildQueryBuilder().ForEntity(Movie.Class).Get();查询luceneQuery=QueryBuilder.Keyword().OnField(“Title”).Matching(Title.ToLowerCase()).CreateQuery();

返回FullTextityManager.CreateFullTextQuery(luceneQuery,Movie.Class).GetResultList();

共有1个答案

杨波娃
2023-03-14

我认为这是一个解决方案,通过定义分析器。这将标记化,但不会排除常见的单词“the”。此外,在搜索代码中,使用方法querybuilder.phrase()而不是keyword(),这样将根据搜索短语执行搜索。

@AnalyzerDef(name=“Custom”,tokenizer=@TokenizerDef(factory=StandardTokenizerFactory.class),filters={@TokenFilterDef(factory=LowerCaseFilterFactory.class),@TokenFilterDef(factory=SnowBallPorterFilterFactory.class,params={@Parameter(name=“Language”,value=“English”)})})公共类电影{

@Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
@Analyzer(definition="custom")
private String title;

...}

要搜索的代码:QueryBuilder qb=FulltExtentityMgr.GetSearchFactory().BuildQueryBuilder().ForEntity(Movie.Class).Get();

查询luceneQuery=qb.phrach().onfield(“title”).语句(Term.ToLowerCase()).createquery();query query=fulltextitymgr.createfulltextquery(luceneQuery,movie.class);

 类似资料:
  • 我试图实现与linq文本搜索。我有一个用电子邮件数据填充的消息表。我想能够在消息体中搜索。然而,电子邮件正文很长,我想只显示搜索文本的一小部分,例如,如果我搜索: 奥特 在以下案文中: 知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。 结果应

  • 问题 对于 3 times 3 的矩阵 begin{bmatrix} 2 & 8 & 1 3 & 7 & x 6 & 4 & 5 end{bmatrix} x 点可以与上下左右的相邻点交换位置,除此之外不能随意改变位置,将该矩阵变成 begin{bmatrix} 1 & 2 & 3 4 & 5 & 6 7 & 8 & x end{bmatrix} 求最少变换次数以及变化经过,若将矩阵的初始状态看作

  • 呃……这个项目如果没有什么特别之处就不叫 elasticsearch 了!现在一起来聊聊客户端的搜索操作。 在命名方案规范的前提下,客户端拥有一切的查询权限,也拥有获取 REST API 公开的一切参数的权限。现在来看看一些示例,方便你熟悉这些语法规则。 Match查询 以下是 Match 查询的标准 curl 格式: curl -XGET 'localhost:9200/my_index/my_

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • bugu-mongo 2.x版本集成了Lucene的功能。当往MongoDB中新增一个Document时,能自动为该Document建立Lucene索引。相应的,当MongoDB中的Document被修改、删除时,对应的Lucene索引也会修改、删除。 另外,bugu-mongo还提供了对Lucene搜索的支持。根据Lucene索引进行搜索的时候,搜索结果能自动转换成对应的Entity对象。 在L

  • 搜索功能 搜索功能的实现设计: 前段界面输入搜索关键字, 传送到对应view中 在对应的view中进行数据库关键字搜索 这里搜索可以只对文章名搜索或者全文搜索 首先在my_blog/templates下添加所有输入框 <div class="sidebar pure-u-1 pure-u-md-1-4"> <div class="header"> <h1 c