我想将我的文本哈希函数带入GIN索引器。
请参阅下面的扩展性:
http://www.postgresql.org/docs/9.0/static/gin-extensibility.html
我可以理解比较。
int compare(Datum a, Datum b)
然而 extractValue , extractQuery 和一致怎么样。
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)
本手册无法帮助我实施它们。
我知道如何实施它们。详细说明:
索引存储(散列键)将为 int4 。输入类型为文字。
答案 0 :(得分:1)
您是否阅读了所有文档?你知道逆指数的作用吗?我无法完全回答您的问题,因为您尚未指定查询的内容。但这是一次尝试(基于http://www.postgresql.org/docs/9.2/static/gin-extensibility.html和http://www.sai.msu.su/~megera/wiki/Gin的信息)。另外,请查看tsearch示例。
compare
的输入是两个键值,因此是两个整数。
extractValue
的输入是您的输入类型,文本。输出是一个键数组:在你的情况下显然是一个整数数组。
extractQuery
获取您的查询类型的输入,该查询类型可能是一个字符串(您没有指定),并返回您希望系统找到匹配项的有趣键列表。它还可以返回consistant
方法的额外信息。
根据您从extractQuery
返回的内容,系统找到有趣的值后,此方法将返回该值是否与查询实际匹配。
由于您尚未指定查询类型,因此我将举例说明全文搜索。
例如,查询类型是一个类似'foo和bar'的字符串,这将返回键'foo'和'bar'以及一些数据,因此consistant
函数知道两个术语必须存在。
但实际上,这些都在上面的页面中描述过。