gpt4 book ai didi

c - PostgreSQL:如何实现 GIN?

转载 作者:太空宇宙 更新时间:2023-11-04 03:54:50 27 4
gpt4 key购买 nike

我想将我的文本哈希函数带入 GIN 索引器。

请参阅下面的可扩展性:

http://www.postgresql.org/docs/9.0/static/gin-extensibility.html

我能理解比较

int compare(Datum a, Datum b)

但是extractValueextractQueryconsistent 怎么样。

Datum *extractValue(Datum inputValue, int32 *nkeys)

Datum *extractQuery(Datum query, int32 *nkeys, StrategyNumber n, bool **pmatch, Pointer **extra_data)

bool consistent(bool check[], StrategyNumber n, Datum query, int32 nkeys, Pointer extra_data[], bool *recheck)

手册无法帮助我实现它们。

我知道如何实现它们。详细说明:

  • extractValueinputValue 传递了什么?
  • extractValue 返回了什么?
  • extractQueryquery 传递了什么?
  • extractQuery 返回了什么?
  • 什么传递给查询一致
  • 什么传递给检查一致

索引存储(散列键)将是 int4。输入类型是文本

最佳答案

您是否阅读了所有文档?你知道逆向索引是做什么的吗?我无法完全回答你的问题,因为你没有指定你的查询是什么样子的。但这是一次尝试(基于 http://www.postgresql.org/docs/9.2/static/gin-extensibility.htmlhttp://www.sai.msu.su/~megera/wiki/Gin 中的信息)。另外,请查看 tsearch 示例。

compare 的输入是两个键值,所以是两个整数。

extractValue 的输入是您的输入类型,文本。输出是一个键数组:在你的例子中显然是一个整数数组。

extractQuery 获取您的查询类型作为输入,它可能是一个字符串(您未指定)并返回您希望系统为其查找匹配项的有趣键列表。它还可以为 consistant 方法返回额外信息。

在系统根据您从 extractQuery 返回的内容找到感兴趣的值后,此方法将返回该值是否实际匹配查询。

由于您尚未指定查询类型,我将举一个全文搜索示例。例如,查询类型是一个字符串,如“foo and bar”,这将返回键“foo”和“bar”以及一些数据,因此 consistant 函数知道这两个术语必须存在.

但实际上,以上页面都描述了这些内容。

关于c - PostgreSQL:如何实现 GIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17489703/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com