通过LUCENE FULLTEXT INDEX(Orientdb / Lucene)进行十进制范围搜索查询

时间:2019-06-17 19:14:20

标签: zend-framework lucene orientdb zend-search-lucene

我将所有类型的值(整数,整数,日期,文本等)存储在“自定义”列中,该列是STRING的数据类型。 如何使用Lucene在“自定义”列上进行整数范围搜索查询?

类似: 从CustomTable中选择*,其中Custom:[1至100];

我有一个解决方案在开始时附加零,但正在寻找其他解决方案?

我对Lucene搜索非常陌生

1 个答案:

答案 0 :(得分:0)

我的建议是仔细阅读Orientdb中有关Lucene索引的文档,尤其是有关范围查询的部分:

http://orientdb.com/docs/3.0.x/indexing/Full-Text-Index.html#numeric-and-date-range-queries

文档稍微解释了反向索引的工作原理。

顺便说一句,这个例子很简单:

CREATE CLASS CITY EXTENDS V
CREATE PROPERTY CITY.name STRING
CREATE PROPERTY CITY.size INTEGER
CREATE INDEX City.name ON City(name,size) FULLTEXT ENGINE LUCENE

将“大小”声明为整数,然后可以使用范围查询:

SELECT FROM City WHERE SEARCH_CLASS('name:cas* AND size:[15000 TO 20000]') = true

日期也是如此:在架构中正确定义日期,并使用Lucene查询来查询范围