我正在构建一个简单的地址数据库。有一个名为Address
的课程,其中地址被分解为字段(街道,城市,州,邮政编码)。每个字段都是字符串类型。OrientDB全文索引使用Lucene在多个字段上搜索
我希望能够通过它们中的任何单词来搜索地址。例如:找到搜索到的单词是否在街道名称或城市名称等中的地址。 换句话说,我希望用户能够轻松搜索,而不必指定他们感兴趣的地址的哪个部分。
因此,我创建像下面的命令索引:
create index Address.full on Address(street,city,state,ZIP) fulltext engine lucene
但是,当我执行以下查询我没有得到任何结果或错误消息:
select * from Address where Address.full lucene "4*"
=>没有结果,应该是2个记录,其中邮政编码是46250和46256
select * from Address where ZIP lucene "4*"
=>获取错误消息:“无法评估没有索引配置的lucene条件。
select * from index:Address.full where key lucene "4*"
=>无结果
另外: select count(*) from index:Address.full
=>返回0作为计,这意味着由于某种原因Lucene的不创建索引。创建索引时没有错误消息。
我该如何做到这一点?
有没有办法调试查询,为什么没有结果?
谢谢你,但它不是我要找的。我的请求可能不太清楚。让我澄清一下: 我希望能够通过查询找到记录,无论搜索到的单词是在街道,城市,邮政编码还是州字段。 换句话说,我希望用户能够轻松搜索,而无需指定他们感兴趣的地址的哪一部分。 –