geohash索引在Lucene中是如何工作的

geohash索引在Lucene中是如何工作的,lucene,geohashing,Lucene,Geohashing,在lucene spatial 4中,我想知道geohash索引在幕后是如何工作的。我理解geohash的概念,它基本上取2个点(lat,lon)并创建一个“string”散列 索引只是一个“字符串”索引(r-树或四叉树)还是沿着这些线的某个东西(例如只是索引一个姓氏)…或者它有什么特别之处 对于预先固定的类型搜索,是否所有的n-gram散列都被索引,例如,如果一个geohash是 drgt2abc是否将其索引为d、dr、drg、drgt等 是否存在我们可能需要索引的默认n-gram数 使用这种

在lucene spatial 4中,我想知道geohash索引在幕后是如何工作的。我理解geohash的概念,它基本上取2个点(lat,lon)并创建一个“string”散列

索引只是一个“字符串”索引(r-树或四叉树)还是沿着这些线的某个东西(例如只是索引一个姓氏)…或者它有什么特别之处

对于预先固定的类型搜索,是否所有的n-gram散列都被索引,例如,如果一个geohash是

drgt2abc是否将其索引为d、dr、drg、drgt等

是否存在我们可能需要索引的默认n-gram数

使用这种类型的索引将搜索具有10万条记录的查询,而1亿条记录对于空间查询具有类似的查询性能。(例如长方体/多边形或距离)或者我可以预期随着大量记录的添加,索引会出现一般/典型的缓慢降级


谢谢

最好的在线解释是我的视频:

索引只是一个“字符串”索引(r树或四叉树)还是什么 沿着这些路线(比如仅仅为姓氏编制索引)……或者是否存在 有什么特别的

Lucene基本上只有一个用于文本、数字和空间的索引。你可以说它是一个字符串索引。它是字节/字符串的排序列表。从更高的层次来看,以这种方式使用空间是计算机科学中的“尝试”家族,也就是“前缀树”

对于预先固定的类型搜索,哈希的所有n-gram都会得到吗 索引,例如,如果一个geohash是

drgt2abc是否将其索引为d、dr、drg、drgt等

是否存在我们可能需要索引的默认n-gram数

您可以方便地告诉它您的精度要求,它会查找需要多长时间。或者你可以通过长度来判断

使用这种类型的索引将搜索10万个查询 1亿条记录的查询性能与 空间查询。(例如长方体/多边形或距离)或者我可以期望 索引的一般/典型缓慢退化,如大量记录 补充说

事实上,这种类型的索引(更具体地说是使用它的聪明的递归搜索树算法)意味着您将具有可伸缩的搜索性能。100m是一个过滤器要匹配的一吨文档,因此它当然要比只匹配100k文档的过滤器慢,但它绝对是次线性的。到明年,它的速度会更快,因为今年夏天正在进行一项新的前缀树编码工作,加上正在进行的空间基准测试,这将使我能够进一步优化我计划的调优