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

使用Lucene在多字段上进行OrientDB全文索引搜索

燕寒
2023-03-14

我在建立一个简单的地址数据库。有一个名为address的类,其中的地址被分解为字段(street、city、state、ZIP)。每个字段都是字符串类型。

我想能够搜索地址中的任何一个字。例如:查找地址,无论搜索的词是在街道名称或城市名称等。换句话说,我希望用户能够轻松搜索,而不必指定他们感兴趣的地址的哪一部分。

创建索引地址。full on Address(街道、城市、州、ZIP)fulltext engine Lucene

但是当我执行以下查询时,我不会得到结果或错误消息:

选择*from Address where Address.full lucene“4*”=>没有结果,应该是2条邮政编码为46250和46256的记录

我怎样才能做到这一点?

是否有一种方法来调试查询,以确定为什么没有结果?

共有1个答案

殳毅
2023-03-14

尝试声明引用单个字段的不同索引,然后键入执行此操作的查询应该有效:

select * from Address where ZIP lucene "4*" and street lucene "a*"
 类似资料:
  • 供参考:我的代码和这个so帖子非常相似。 谢谢

  • 我使用的是OrientDB 2.1.8社区和内置的Lucene索引。如何在手动索引中定义在搜索过程中要使用的字段?即。按照文档中使用多个字段页面中描述的方式使用手动索引? 下面是一个简短的例子来展示我正在努力做的事情。

  • 问题内容: 我正在开发一个高容量的Web应用程序,其中的一部分是讨论帖子的MySQL数据库,该数据库需要平稳地增长到2000万+行。 我本来打算对表使用MyISAM(用于内置的全文本搜索功能),但是由于单个写入操作而使 整个表 被锁定的想法使我陷入困境。行级锁具有更大的意义(更不用说InnoDB在处理大型表时的其他速度优势)。因此,基于这个原因,我决心使用InnoDB。 问题是… InnoDB没有

  • 在测试此文本时,我在要在文本中搜索的列上创建了lucene(3.0.1)索引: 如果我按关键字搜索,它会给出结果,但按 我正在使用standardAnalyzer: 因为已设置,它应创建令牌,并且应存在$GLD。Analyzer将从文本中删除停止字,因为word也将在该过程中删除。

  • 我在我的应用程序中使用Hibernate搜索。其中一个子集合映射为IndexeDemBedded。子对象有两个字段,一个是id,另一个是date(使用date resoultion到毫秒)。当我搜索ID=1(或某个值)并且date等于另一个值时,我会得到第一个和第二个匹配的所有情况的结果。我只想在同一个孩子中获得两个字段匹配的记录,但我在不同的孩子中获得匹配,结果会高得多。下面是代码片段 主类是用

  • 假设我存储的Lucene文档有一个表示正则表达式的存储字段。 即 我的搜索输入类似于。