{"kind": "opclass", "major": "18", "item": {"slug": "class-spgist-kd_point_ops", "name": "spgist/kd_point_ops (class)", "name_zh": "", "category": "SP-GiST \u64cd\u4f5c\u7b26\u7c7b", "summary": "point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002", "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "content_hash": "46978abfc65289042fcbbec55c0788af20d2e49f4efab6c6efbb3eb734139379", "versions": {"10": {"class": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "facts": [{"label": "\u5bf9\u8c61\u79cd\u7c7b", "value": "\u64cd\u4f5c\u7b26\u7c7b"}, {"label": "\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5", "value": "SP-GiST"}, {"label": "\u8f93\u5165\u7c7b\u578b", "value": "point"}, {"label": "\u5b58\u50a8\u952e\u7c7b\u578b", "value": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c\uff08\u76ee\u5f55\u503c\u4e3a\u96f6\uff09"}, {"label": "\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b", "value": "\u5426"}], "tables": [{"key": "operators", "rows": [{"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e5e-point-point/?v=10", "text": ">^(point,point)"}, "strategy": "11", "description": "\u4f4d\u4e8e\u4e0a\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c-point-point/?v=10", "text": "<<(point,point)"}, "strategy": "1", "description": "\u4f4d\u4e8e\u5de6\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e3e-point-point/?v=10", "text": ">>(point,point)"}, "strategy": "5", "description": "\u4f4d\u4e8e\u53f3\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c5e-point-point/?v=10", "text": "<^(point,point)"}, "strategy": "10", "description": "\u4f4d\u4e8e\u4e0b\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7e3d-point-point/?v=10", "text": "~=(point,point)"}, "strategy": "6", "description": "\u76f8\u540c", "sort_family": ""}, {"scope": "\u5bb6\u65cf\u6210\u5458", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c40-point-box/?v=10", "text": "<@(point,box)"}, "strategy": "8", "description": "\u70b9\u4f4d\u4e8e\u77e9\u5f62\u6846\u5185", "sort_family": ""}], "title": "\u5bb6\u65cf\u4e2d\u7684\u64cd\u4f5c\u7b26\u7b56\u7565", "columns": [{"key": "operator", "label": "\u64cd\u4f5c\u7b26\u91cd\u8f7d"}, {"key": "strategy", "label": "\u7b56\u7565"}, {"key": "purpose", "label": "\u7528\u9014"}, {"key": "sort_family", "label": "\u6392\u5e8f\u5bb6\u65cf"}, {"key": "scope", "label": "\u6210\u5458\u8303\u56f4"}, {"key": "description", "label": "\u6e90\u7801\u8bf4\u660e"}]}, {"key": "support-functions", "rows": [{"number": "1", "function": "spg_kd_config(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=10", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=10", "text": "point"}, "result_type": "void"}, {"number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=10", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=10", "text": "point"}, "result_type": "void"}, {"number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=10", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=10", "text": "point"}, "result_type": "void"}, {"number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=10", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=10", "text": "point"}, "result_type": "void"}, {"number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=10", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=10", "text": "point"}, "result_type": "bool"}], "title": "\u5bb6\u65cf\u652f\u6301\u51fd\u6570", "columns": [{"key": "number", "label": "\u652f\u6301\u51fd\u6570\u7f16\u53f7"}, {"key": "left_type", "label": "\u5de6\u4fa7\u7c7b\u578b"}, {"key": "right_type", "label": "\u53f3\u4fa7\u7c7b\u578b"}, {"key": "function", "label": "\u51fd\u6570\u7b7e\u540d"}, {"key": "result_type", "label": "\u8fd4\u56de\u7c7b\u578b"}]}, {"key": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-spgist-kd_point_ops/?v=10", "text": "kd_point_ops"}, "default": "\u5426", "key_type": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c", "input_type": {"url": "/wiki/type/point/?v=10", "text": "point"}}], "title": "\u672c\u5bb6\u65cf\u7684\u64cd\u4f5c\u7b26\u7c7b", "columns": [{"key": "class", "label": "\u64cd\u4f5c\u7b26\u7c7b"}, {"key": "input_type", "label": "\u8f93\u5165\u7c7b\u578b"}, {"key": "key_type", "label": "\u952e\u7c7b\u578b"}, {"key": "default", "label": "\u9ed8\u8ba4\u503c"}]}], "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "classes": [{"name": "kd_point_ops", "slug": "class-spgist-kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point", "source_oid": "", "family_slug": "family-spgist-kd_point_ops"}], "related": [{"url": "/wiki/indexam/spgist/?v=10", "label": "SP-GiST \u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5"}, {"url": "/wiki/opclass/family-spgist-kd_point_ops/?v=10", "label": "kd_point_ops \u5bb6\u65cf"}, {"url": "/wiki/type/point/?v=10", "label": "point \u6570\u636e\u7c7b\u578b"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "10.23", "major": "10", "channel": "historical", "revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9", "source_sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9", "manual_fingerprint": "113b870e3ff4b52320f34750da5e740800f3f6e4ed6f2fc00a0891944d1be7c2", "catalog_fingerprint": "dd2d5fd5e17d29184db5f6625f9f0f9b9d40ae7aa34b6ccf28ddbc8684bd4992"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, {"url": "https://pg.center/docs/10/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 10 English manual: indexes-opclass.html", "sha256": "5e070d906c5b9c756625cc59969d7259b304fb3ff73ec4363e2dcbf923ad4c61", "language": "en", "original_url": "/docs/10/indexes-opclass.html"}, {"url": "https://pg.center/docs/10/catalog-pg-opclass.html", "path": "catalog-pg-opclass.html", "label": "PostgreSQL 10 English manual: catalog-pg-opclass.html", "sha256": "3be20e2a81d94f5181b1ed6dbf0b36e358fef354f628beac0e6a46b05a5db3b1", "language": "en", "original_url": "/docs/10/catalog-pg-opclass.html"}, {"url": "https://pg.center/docs/10/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 10 English manual: catalog-pg-amop.html", "sha256": "d5ce5a3be599e5506edbe3ff615674beb013720953f4979a44b6ecfd4cc24090", "language": "en", "original_url": "/docs/10/catalog-pg-amop.html"}, {"url": "https://pg.center/docs/10/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 10 English manual: catalog-pg-amproc.html", "sha256": "5e5f2932bae4725864988e810841b0edf82d629b3ea2690ffe8b44935eb89131", "language": "en", "original_url": "/docs/10/catalog-pg-amproc.html"}, {"url": "https://pg.center/docs/10/spgist-builtin-opclasses.html", "path": "spgist-builtin-opclasses.html", "label": "PostgreSQL 10 English manual: spgist-builtin-opclasses.html", "sha256": "4a744e384c32d44ecd1dbd886ec20be2b445b01505d2ff9bda0e85a26fb2082c", "language": "en", "original_url": "/docs/10/spgist-builtin-opclasses.html"}], "sections": [{"title": "\u64cd\u4f5c\u7b26\u7c7b\u4e0e\u5bb6\u65cf", "paragraphs": ["\u7d22\u5f15\u5b9a\u4e49\u53ef\u4ee5\u4e3a\u7d22\u5f15\u7684\u6bcf\u4e00\u5217\u6307\u5b9a\u4e00\u4e2a \u64cd\u4f5c\u7b26\u7c7b \u3002", "\u64cd\u4f5c\u7b26\u7c7b\u786e\u5b9a\u7d22\u5f15\u9488\u5bf9\u8be5\u5217\u4f7f\u7528\u54ea\u4e9b\u64cd\u4f5c\u7b26\u3002\u4f8b\u5982\uff0c\u5efa\u7acb\u5728\u7c7b\u578b int4 \u4e0a\u7684 B-\u6811\u7d22\u5f15\u4f1a\u4f7f\u7528 int4_ops \u7c7b\uff1b\u8be5\u64cd\u4f5c\u7b26\u7c7b\u5305\u542b\u9488\u5bf9\u4ee5\u4e0b\u7c7b\u578b\u7684\u503c\u7684\u6bd4\u8f83\u51fd\u6570\uff1a int4 \u3002\u5b9e\u9645\u4e2d\uff0c\u5217\u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u901a\u5e38\u5c31\u8db3\u591f\u4e86\u3002\u4e4b\u6240\u4ee5\u9700\u8981\u64cd\u4f5c\u7b26\u7c7b\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5bf9\u4e8e\u67d0\u4e9b\u6570\u636e\u7c7b\u578b\uff0c\u53ef\u80fd\u5b58\u5728\u4e0d\u6b62\u4e00\u79cd\u6709\u610f\u4e49\u7684\u7d22\u5f15\u884c\u4e3a\u3002\u4f8b\u5982\uff0c\u53ef\u80fd\u5e0c\u671b\u6309\u7edd\u5bf9\u503c\u6216\u5b9e\u90e8\u5bf9\u590d\u6570\u6570\u636e\u7c7b\u578b\u6392\u5e8f\u3002\u53ef\u4ee5\u4e3a\u8be5\u6570\u636e\u7c7b\u578b\u5b9a\u4e49\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c\u5e76\u5728\u521b\u5efa\u7d22\u5f15\u65f6\u9009\u62e9\u5408\u9002\u7684\u7c7b\u3002\u64cd\u4f5c\u7b26\u7c7b\u51b3\u5b9a\u57fa\u672c\u6392\u5e8f\u987a\u5e8f\uff08\u968f\u540e\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u6392\u5e8f\u9009\u9879\u8fdb\u884c\u8c03\u6574\uff1a COLLATE \uff0c ASC / DESC \u548c/\u6216 NULLS FIRST / NULLS LAST \uff09\u3002", "\u9664\u4e86\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u4e4b\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5185\u7f6e\u64cd\u4f5c\u7b26\u7c7b\uff1a"]}, {"title": "\u4e13\u9898\u624b\u518c\u8bf4\u660e", "paragraphs": ["\u5bf9\u4e8e\u7c7b\u578b point \u7684\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c quad_point_ops \u662f\u9ed8\u8ba4\u9009\u9879\u3002 kd_point_ops \u652f\u6301\u76f8\u540c\u7684\u64cd\u4f5c\u7b26\uff0c\u4f46\u4f7f\u7528\u4e0d\u540c\u7684\u7d22\u5f15\u6570\u636e\u7ed3\u6784\uff0c\u5728\u67d0\u4e9b\u5e94\u7528\u4e2d\u53ef\u80fd\u63d0\u4f9b\u66f4\u597d\u7684\u6027\u80fd\u3002"]}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "description": "is above", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "description": "is left of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "description": "is right of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "description": "is below", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "description": "same as", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7e3d-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "description": "point inside box", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-point-box", "sort_family_slug": ""}], "signature": "spgist/kd_point_ops", "source_oid": "", "description": ["point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002"], "localization": {"status": "complete", "sources": [{"url": "/docs/10/catalog-pg-amop.html", "method": "same-major semantic node", "sha256": "f2ee5e4386a45a176aa7c61ff8d752aee0ce3aaea06553965bee526ab799f223", "language": "zh", "matched_nodes": ["#CATALOG-PG-AMOP/p[2]/em[1]"]}, {"url": "/docs/10/indexes-opclass.html", "method": "same-major semantic node", "sha256": "a63692e6035b21dab0183c026ca8b0c2ac480c3ca9833fdce2081537733252db", "language": "zh", "matched_nodes": ["#INDEXES-OPCLASS/p[3]", "#INDEXES-OPCLASS/p[5]", "#INDEXES-OPCLASS/p[6]"]}, {"url": "/docs/10/spgist-builtin-opclasses.html", "method": "same-major semantic node", "sha256": "5921135ae2033e984636a2190b5184de7d12bd16c9dfc113e2c422a16bb99c78", "language": "zh", "matched_nodes": ["#SPGIST-BUILTIN-OPCLASSES/p[4]"]}], "language": "zh", "original_text": {"/versions/10/description/0": "SP-GiST operator class for point; member of kd_point_ops.", "/versions/10/facts/0/label": "Object kind", "/versions/10/facts/0/value": "Operator class", "/versions/10/facts/1/label": "Index AM", "/versions/10/facts/2/label": "Input type", "/versions/10/facts/3/label": "Stored key type", "/versions/10/facts/3/value": "Same as input type (catalog zero)", "/versions/10/facts/4/label": "Default class", "/versions/10/facts/4/value": "no", "/versions/10/tables/0/title": "Family operator strategies", "/versions/10/tables/1/title": "Family support functions", "/versions/10/tables/2/title": "Classes in this family", "/versions/10/related/0/label": "SP-GiST Index AM", "/versions/10/related/1/label": "kd_point_ops family", "/versions/10/related/2/label": "point data type", "/versions/10/sections/0/title": "Operator classes and families", "/versions/10/sections/1/title": "Specific manual guidance", "/versions/10/tables/0/rows/0/scope": "Class input pair", "/versions/10/tables/0/rows/1/scope": "Class input pair", "/versions/10/tables/0/rows/2/scope": "Class input pair", "/versions/10/tables/0/rows/3/scope": "Class input pair", "/versions/10/tables/0/rows/4/scope": "Class input pair", "/versions/10/tables/0/rows/5/scope": "Family member", "/versions/10/sections/0/paragraphs/0": "An index definition can specify an operator class for each column of an index.", "/versions/10/sections/0/paragraphs/1": "The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).", "/versions/10/sections/0/paragraphs/2": "There are also some built-in operator classes besides the default ones:", "/versions/10/sections/1/paragraphs/0": "Of the two operator classes for type point , quad_point_ops is the default. kd_point_ops supports the same operators but uses a different index data structure that may offer better performance in some applications.", "/versions/10/tables/0/rows/0/purpose": "search", "/versions/10/tables/0/rows/1/purpose": "search", "/versions/10/tables/0/rows/2/purpose": "search", "/versions/10/tables/0/rows/3/purpose": "search", "/versions/10/tables/0/rows/4/purpose": "search", "/versions/10/tables/0/rows/5/purpose": "search", "/versions/10/tables/2/rows/0/default": "no", "/versions/10/tables/0/columns/0/label": "Operator overload", "/versions/10/tables/0/columns/1/label": "Strategy", "/versions/10/tables/0/columns/2/label": "Purpose", "/versions/10/tables/0/columns/3/label": "Ordering family", "/versions/10/tables/0/columns/4/label": "Membership scope", "/versions/10/tables/0/columns/5/label": "Source description", "/versions/10/tables/1/columns/0/label": "Support number", "/versions/10/tables/1/columns/1/label": "Left type", "/versions/10/tables/1/columns/2/label": "Right type", "/versions/10/tables/1/columns/3/label": "Function signature", "/versions/10/tables/1/columns/4/label": "Result type", "/versions/10/tables/2/columns/0/label": "Class", "/versions/10/tables/2/columns/1/label": "Input type", "/versions/10/tables/2/columns/2/label": "Key type", "/versions/10/tables/2/columns/3/label": "Default", "/versions/10/tables/2/rows/0/key_type": "Same as input type", "/versions/10/tables/0/rows/0/description": "is above", "/versions/10/tables/0/rows/1/description": "is left of", "/versions/10/tables/0/rows/2/description": "is right of", "/versions/10/tables/0/rows/3/description": "is below", "/versions/10/tables/0/rows/4/description": "same as", "/versions/10/tables/0/rows/5/description": "point inside box"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "343078418527ce3897ece72ce793d5c76c49c4e07ed9b28a066e23b599c369eb"}, "comparison_data": {"kind": "class", "classes": [{"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "sort_family": ""}], "attributes": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "bool"}]}, "comparison_hash": "330dc55ab0f410e17918a3700d5badaa280bb826723d0d2431f9f6d973e73cbb", "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool"}]}, "11": {"class": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "facts": [{"label": "\u5bf9\u8c61\u79cd\u7c7b", "value": "\u64cd\u4f5c\u7b26\u7c7b"}, {"label": "\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5", "value": "SP-GiST"}, {"label": "\u8f93\u5165\u7c7b\u578b", "value": "point"}, {"label": "\u5b58\u50a8\u952e\u7c7b\u578b", "value": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c\uff08\u76ee\u5f55\u503c\u4e3a\u96f6\uff09"}, {"label": "\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b", "value": "\u5426"}], "tables": [{"key": "operators", "rows": [{"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e5e-point-point/?v=11", "text": ">^(point,point)"}, "strategy": "11", "description": "\u4f4d\u4e8e\u4e0a\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c-point-point/?v=11", "text": "<<(point,point)"}, "strategy": "1", "description": "\u4f4d\u4e8e\u5de6\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e3e-point-point/?v=11", "text": ">>(point,point)"}, "strategy": "5", "description": "\u4f4d\u4e8e\u53f3\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c5e-point-point/?v=11", "text": "<^(point,point)"}, "strategy": "10", "description": "\u4f4d\u4e8e\u4e0b\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7e3d-point-point/?v=11", "text": "~=(point,point)"}, "strategy": "6", "description": "\u76f8\u540c", "sort_family": ""}, {"scope": "\u5bb6\u65cf\u6210\u5458", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c40-point-box/?v=11", "text": "<@(point,box)"}, "strategy": "8", "description": "\u70b9\u4f4d\u4e8e\u77e9\u5f62\u6846\u5185", "sort_family": ""}], "title": "\u5bb6\u65cf\u4e2d\u7684\u64cd\u4f5c\u7b26\u7b56\u7565", "columns": [{"key": "operator", "label": "\u64cd\u4f5c\u7b26\u91cd\u8f7d"}, {"key": "strategy", "label": "\u7b56\u7565"}, {"key": "purpose", "label": "\u7528\u9014"}, {"key": "sort_family", "label": "\u6392\u5e8f\u5bb6\u65cf"}, {"key": "scope", "label": "\u6210\u5458\u8303\u56f4"}, {"key": "description", "label": "\u6e90\u7801\u8bf4\u660e"}]}, {"key": "support-functions", "rows": [{"number": "1", "function": "spg_kd_config(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=11", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=11", "text": "point"}, "result_type": "void"}, {"number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=11", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=11", "text": "point"}, "result_type": "void"}, {"number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=11", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=11", "text": "point"}, "result_type": "void"}, {"number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=11", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=11", "text": "point"}, "result_type": "void"}, {"number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=11", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=11", "text": "point"}, "result_type": "bool"}], "title": "\u5bb6\u65cf\u652f\u6301\u51fd\u6570", "columns": [{"key": "number", "label": "\u652f\u6301\u51fd\u6570\u7f16\u53f7"}, {"key": "left_type", "label": "\u5de6\u4fa7\u7c7b\u578b"}, {"key": "right_type", "label": "\u53f3\u4fa7\u7c7b\u578b"}, {"key": "function", "label": "\u51fd\u6570\u7b7e\u540d"}, {"key": "result_type", "label": "\u8fd4\u56de\u7c7b\u578b"}]}, {"key": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-spgist-kd_point_ops/?v=11", "text": "kd_point_ops"}, "default": "\u5426", "key_type": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c", "input_type": {"url": "/wiki/type/point/?v=11", "text": "point"}}], "title": "\u672c\u5bb6\u65cf\u7684\u64cd\u4f5c\u7b26\u7c7b", "columns": [{"key": "class", "label": "\u64cd\u4f5c\u7b26\u7c7b"}, {"key": "input_type", "label": "\u8f93\u5165\u7c7b\u578b"}, {"key": "key_type", "label": "\u952e\u7c7b\u578b"}, {"key": "default", "label": "\u9ed8\u8ba4\u503c"}]}], "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "classes": [{"name": "kd_point_ops", "slug": "class-spgist-kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point", "source_oid": "", "family_slug": "family-spgist-kd_point_ops"}], "related": [{"url": "/wiki/indexam/spgist/?v=11", "label": "SP-GiST \u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5"}, {"url": "/wiki/opclass/family-spgist-kd_point_ops/?v=11", "label": "kd_point_ops \u5bb6\u65cf"}, {"url": "/wiki/type/point/?v=11", "label": "point \u6570\u636e\u7c7b\u578b"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "11.22", "major": "11", "channel": "historical", "revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0", "source_sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0", "manual_fingerprint": "99c9e45d34555f000789cb4e019492e838041c1f2f31d840f3051ff9d7ed9118", "catalog_fingerprint": "4f08eb8c7ac7d09abfbb29a172148a44b8fb72026616bb55a5f8f84db7a38785"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, {"url": "https://pg.center/docs/11/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 11 English manual: indexes-opclass.html", "sha256": "234c67ab5a33096697e1851c197c79ba0e872686c7909c2696716a102253c7bd", "language": "en", "original_url": "/docs/11/indexes-opclass.html"}, {"url": "https://pg.center/docs/11/catalog-pg-opclass.html", "path": "catalog-pg-opclass.html", "label": "PostgreSQL 11 English manual: catalog-pg-opclass.html", "sha256": "e91b7d053b9aaf4afd969cd28ae512814047da83d507533d29b1694d1b334296", "language": "en", "original_url": "/docs/11/catalog-pg-opclass.html"}, {"url": "https://pg.center/docs/11/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 11 English manual: catalog-pg-amop.html", "sha256": "c17d050a6f2d093de2c343242bcc4d446b936de1d2902727d3fa3b0697b44fd3", "language": "en", "original_url": "/docs/11/catalog-pg-amop.html"}, {"url": "https://pg.center/docs/11/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 11 English manual: catalog-pg-amproc.html", "sha256": "819e66cb86af033d3328a3602c65c861e9f2d2c519d1f42f37fdd7766e1fc31f", "language": "en", "original_url": "/docs/11/catalog-pg-amproc.html"}, {"url": "https://pg.center/docs/11/spgist-builtin-opclasses.html", "path": "spgist-builtin-opclasses.html", "label": "PostgreSQL 11 English manual: spgist-builtin-opclasses.html", "sha256": "c77c2240db8806f80198860c7e16a7989d1a98607fd2c5612b94b7568b9ba219", "language": "en", "original_url": "/docs/11/spgist-builtin-opclasses.html"}], "sections": [{"title": "\u64cd\u4f5c\u7b26\u7c7b\u4e0e\u5bb6\u65cf", "paragraphs": ["\u4e00\u4e2a\u7d22\u5f15\u5b9a\u4e49\u53ef\u4ee5\u4e3a\u7d22\u5f15\u7684\u6bcf\u4e00\u5217\u6307\u5b9a\u4e00\u4e2a \u64cd\u4f5c\u7b26\u7c7b \u3002", "\u64cd\u4f5c\u7b26\u7c7b\u6807\u8bc6\u8be5\u7d22\u5f15\u5728\u8be5\u5217\u4e0a\u8981\u4f7f\u7528\u54ea\u4e9b\u64cd\u4f5c\u7b26\u3002\u4f8b\u5982\uff0c\u7c7b\u578b int4 \u4e0a\u7684\u4e00\u4e2a B-\u6811\u7d22\u5f15\u4f1a\u4f7f\u7528 int4_ops \u7c7b\uff1b\u8fd9\u4e2a\u64cd\u4f5c\u7b26\u7c7b\u5305\u542b\u5bf9 int4 \u503c\u8fdb\u884c\u6bd4\u8f83\u6240\u9700\u7684\u51fd\u6570\u3002\u5b9e\u8df5\u4e2d\uff0c\u5217\u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u901a\u5e38\u5df2\u7ecf\u8db3\u591f\u3002\u4e4b\u6240\u4ee5\u5b58\u5728\u64cd\u4f5c\u7b26\u7c7b\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5bf9\u67d0\u4e9b\u6570\u636e\u7c7b\u578b\u6765\u8bf4\uff0c\u53ef\u80fd\u5b58\u5728\u591a\u79cd\u6709\u610f\u4e49\u7684\u7d22\u5f15\u884c\u4e3a\u3002\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u80fd\u5e0c\u671b\u6309\u7edd\u5bf9\u503c\u6392\u5e8f\u4e00\u79cd\u590d\u6570\u6570\u636e\u7c7b\u578b\uff0c\u4e5f\u53ef\u80fd\u5e0c\u671b\u6309\u5b9e\u90e8\u6392\u5e8f\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e3a\u8be5\u6570\u636e\u7c7b\u578b\u5b9a\u4e49\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c\u5e76\u5728\u521b\u5efa\u7d22\u5f15\u65f6\u9009\u62e9\u5408\u9002\u7684\u90a3\u4e2a\u6765\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u64cd\u4f5c\u7b26\u7c7b\u51b3\u5b9a\u4e86\u57fa\u7840\u6392\u5e8f\u987a\u5e8f\uff08\u4e4b\u540e\u8fd8\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u6392\u5e8f\u9009\u9879 COLLATE \u3001 ASC / DESC \u548c/\u6216 NULLS FIRST / NULLS LAST \u6765\u4fee\u6539\uff09\u3002", "\u9664\u4e86\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u4e4b\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5185\u7f6e\u64cd\u4f5c\u7b26\u7c7b\uff1a"]}, {"title": "\u4e13\u9898\u624b\u518c\u8bf4\u660e", "paragraphs": ["\u5bf9\u4e8e\u7c7b\u578b point \u7684\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c quad_point_ops \u662f\u9ed8\u8ba4\u9009\u9879\u3002 kd_point_ops \u652f\u6301\u76f8\u540c\u7684\u64cd\u4f5c\u7b26\uff0c\u4f46\u4f7f\u7528\u4e0d\u540c\u7684\u7d22\u5f15\u6570\u636e\u7ed3\u6784\uff0c\u5728\u67d0\u4e9b\u5e94\u7528\u4e2d\u53ef\u80fd\u63d0\u4f9b\u66f4\u597d\u7684\u6027\u80fd\u3002"]}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "description": "is above", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "description": "is left of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "description": "is right of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "description": "is below", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "description": "same as", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7e3d-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "description": "point inside box", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-point-box", "sort_family_slug": ""}], "signature": "spgist/kd_point_ops", "source_oid": "", "description": ["point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002"], "localization": {"status": "complete", "sources": [{"url": "/docs/11/catalog-pg-amop.html", "method": "same-major semantic node", "sha256": "d4e01ba05c1f00188e2353ef6816dbe175140ae359defc71e20f92fb0e69299a", "language": "zh", "matched_nodes": ["#CATALOG-PG-AMOP/p[2]/em[1]"]}, {"url": "/docs/11/indexes-opclass.html", "method": "same-major semantic node", "sha256": "89f6f02b6aadf86b19cfce09618561d39321a355dbce65ca30759d9044f1ac44", "language": "zh", "matched_nodes": ["#INDEXES-OPCLASS/p[3]", "#INDEXES-OPCLASS/p[5]", "#INDEXES-OPCLASS/p[6]"]}, {"url": "/docs/11/spgist-builtin-opclasses.html", "method": "same-major semantic node", "sha256": "a9f0e99d823945f425afc13372a01ad42e52a987cf9e05f3d2bde07c9ae84faa", "language": "zh", "matched_nodes": ["#SPGIST-BUILTIN-OPCLASSES/p[4]"]}], "language": "zh", "original_text": {"/versions/11/description/0": "SP-GiST operator class for point; member of kd_point_ops.", "/versions/11/facts/0/label": "Object kind", "/versions/11/facts/0/value": "Operator class", "/versions/11/facts/1/label": "Index AM", "/versions/11/facts/2/label": "Input type", "/versions/11/facts/3/label": "Stored key type", "/versions/11/facts/3/value": "Same as input type (catalog zero)", "/versions/11/facts/4/label": "Default class", "/versions/11/facts/4/value": "no", "/versions/11/tables/0/title": "Family operator strategies", "/versions/11/tables/1/title": "Family support functions", "/versions/11/tables/2/title": "Classes in this family", "/versions/11/related/0/label": "SP-GiST Index AM", "/versions/11/related/1/label": "kd_point_ops family", "/versions/11/related/2/label": "point data type", "/versions/11/sections/0/title": "Operator classes and families", "/versions/11/sections/1/title": "Specific manual guidance", "/versions/11/tables/0/rows/0/scope": "Class input pair", "/versions/11/tables/0/rows/1/scope": "Class input pair", "/versions/11/tables/0/rows/2/scope": "Class input pair", "/versions/11/tables/0/rows/3/scope": "Class input pair", "/versions/11/tables/0/rows/4/scope": "Class input pair", "/versions/11/tables/0/rows/5/scope": "Family member", "/versions/11/sections/0/paragraphs/0": "An index definition can specify an operator class for each column of an index.", "/versions/11/sections/0/paragraphs/1": "The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).", "/versions/11/sections/0/paragraphs/2": "There are also some built-in operator classes besides the default ones:", "/versions/11/sections/1/paragraphs/0": "Of the two operator classes for type point , quad_point_ops is the default. kd_point_ops supports the same operators but uses a different index data structure that may offer better performance in some applications.", "/versions/11/tables/0/rows/0/purpose": "search", "/versions/11/tables/0/rows/1/purpose": "search", "/versions/11/tables/0/rows/2/purpose": "search", "/versions/11/tables/0/rows/3/purpose": "search", "/versions/11/tables/0/rows/4/purpose": "search", "/versions/11/tables/0/rows/5/purpose": "search", "/versions/11/tables/2/rows/0/default": "no", "/versions/11/tables/0/columns/0/label": "Operator overload", "/versions/11/tables/0/columns/1/label": "Strategy", "/versions/11/tables/0/columns/2/label": "Purpose", "/versions/11/tables/0/columns/3/label": "Ordering family", "/versions/11/tables/0/columns/4/label": "Membership scope", "/versions/11/tables/0/columns/5/label": "Source description", "/versions/11/tables/1/columns/0/label": "Support number", "/versions/11/tables/1/columns/1/label": "Left type", "/versions/11/tables/1/columns/2/label": "Right type", "/versions/11/tables/1/columns/3/label": "Function signature", "/versions/11/tables/1/columns/4/label": "Result type", "/versions/11/tables/2/columns/0/label": "Class", "/versions/11/tables/2/columns/1/label": "Input type", "/versions/11/tables/2/columns/2/label": "Key type", "/versions/11/tables/2/columns/3/label": "Default", "/versions/11/tables/2/rows/0/key_type": "Same as input type", "/versions/11/tables/0/rows/0/description": "is above", "/versions/11/tables/0/rows/1/description": "is left of", "/versions/11/tables/0/rows/2/description": "is right of", "/versions/11/tables/0/rows/3/description": "is below", "/versions/11/tables/0/rows/4/description": "same as", "/versions/11/tables/0/rows/5/description": "point inside box"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "600194d3b8b18dd977ae3b07f53c6e1d96d96d2890059ff04710cfb0f24b4fdc"}, "comparison_data": {"kind": "class", "classes": [{"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "sort_family": ""}], "attributes": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "bool"}]}, "comparison_hash": "330dc55ab0f410e17918a3700d5badaa280bb826723d0d2431f9f6d973e73cbb", "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool"}]}, "12": {"class": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "facts": [{"label": "\u5bf9\u8c61\u79cd\u7c7b", "value": "\u64cd\u4f5c\u7b26\u7c7b"}, {"label": "\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5", "value": "SP-GiST"}, {"label": "\u8f93\u5165\u7c7b\u578b", "value": "point"}, {"label": "\u5b58\u50a8\u952e\u7c7b\u578b", "value": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c\uff08\u76ee\u5f55\u503c\u4e3a\u96f6\uff09"}, {"label": "\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b", "value": "\u5426"}], "tables": [{"key": "operators", "rows": [{"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e5e-point-point/?v=12", "text": ">^(point,point)"}, "strategy": "11", "description": "\u4f4d\u4e8e\u4e0a\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c-point-point/?v=12", "text": "<<(point,point)"}, "strategy": "1", "description": "\u4f4d\u4e8e\u5de6\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e3e-point-point/?v=12", "text": ">>(point,point)"}, "strategy": "5", "description": "\u4f4d\u4e8e\u53f3\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c5e-point-point/?v=12", "text": "<^(point,point)"}, "strategy": "10", "description": "\u4f4d\u4e8e\u4e0b\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7e3d-point-point/?v=12", "text": "~=(point,point)"}, "strategy": "6", "description": "\u76f8\u540c", "sort_family": ""}, {"scope": "\u5bb6\u65cf\u6210\u5458", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c40-point-box/?v=12", "text": "<@(point,box)"}, "strategy": "8", "description": "\u70b9\u4f4d\u4e8e\u77e9\u5f62\u6846\u5185", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u6392\u5e8f", "operator": {"url": "/wiki/operator/op-3c2d3e-point-point/?v=12", "text": "<->(point,point)"}, "strategy": "15", "description": "\u4e24\u8005\u4e4b\u95f4\u7684\u8ddd\u79bb", "sort_family": "float_ops"}], "title": "\u5bb6\u65cf\u4e2d\u7684\u64cd\u4f5c\u7b26\u7b56\u7565", "columns": [{"key": "operator", "label": "\u64cd\u4f5c\u7b26\u91cd\u8f7d"}, {"key": "strategy", "label": "\u7b56\u7565"}, {"key": "purpose", "label": "\u7528\u9014"}, {"key": "sort_family", "label": "\u6392\u5e8f\u5bb6\u65cf"}, {"key": "scope", "label": "\u6210\u5458\u8303\u56f4"}, {"key": "description", "label": "\u6e90\u7801\u8bf4\u660e"}]}, {"key": "support-functions", "rows": [{"number": "1", "function": "spg_kd_config(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=12", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=12", "text": "point"}, "result_type": "void"}, {"number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=12", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=12", "text": "point"}, "result_type": "void"}, {"number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=12", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=12", "text": "point"}, "result_type": "void"}, {"number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=12", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=12", "text": "point"}, "result_type": "void"}, {"number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=12", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=12", "text": "point"}, "result_type": "bool"}], "title": "\u5bb6\u65cf\u652f\u6301\u51fd\u6570", "columns": [{"key": "number", "label": "\u652f\u6301\u51fd\u6570\u7f16\u53f7"}, {"key": "left_type", "label": "\u5de6\u4fa7\u7c7b\u578b"}, {"key": "right_type", "label": "\u53f3\u4fa7\u7c7b\u578b"}, {"key": "function", "label": "\u51fd\u6570\u7b7e\u540d"}, {"key": "result_type", "label": "\u8fd4\u56de\u7c7b\u578b"}]}, {"key": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-spgist-kd_point_ops/?v=12", "text": "kd_point_ops"}, "default": "\u5426", "key_type": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c", "input_type": {"url": "/wiki/type/point/?v=12", "text": "point"}}], "title": "\u672c\u5bb6\u65cf\u7684\u64cd\u4f5c\u7b26\u7c7b", "columns": [{"key": "class", "label": "\u64cd\u4f5c\u7b26\u7c7b"}, {"key": "input_type", "label": "\u8f93\u5165\u7c7b\u578b"}, {"key": "key_type", "label": "\u952e\u7c7b\u578b"}, {"key": "default", "label": "\u9ed8\u8ba4\u503c"}]}], "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "classes": [{"name": "kd_point_ops", "slug": "class-spgist-kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point", "source_oid": "", "family_slug": "family-spgist-kd_point_ops"}], "related": [{"url": "/wiki/indexam/spgist/?v=12", "label": "SP-GiST \u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5"}, {"url": "/wiki/opclass/family-spgist-kd_point_ops/?v=12", "label": "kd_point_ops \u5bb6\u65cf"}, {"url": "/wiki/type/point/?v=12", "label": "point \u6570\u636e\u7c7b\u578b"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "12.22", "major": "12", "channel": "historical", "revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b", "source_sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b", "manual_fingerprint": "535df36baec2140f211303631c0a3f64e02d2673b9d34cb050d247997c94bd1e", "catalog_fingerprint": "1f423fd3c5fb61c039f8814116ce19dedbb2804bc864599818e88cbc4f5f284a"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, {"url": "https://pg.center/docs/12/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 12 English manual: indexes-opclass.html", "sha256": "bdd742eaf65ab7addb35aa56509afe244d63775521460a046bf76f50bc0389db", "language": "en", "original_url": "/docs/12/indexes-opclass.html"}, {"url": "https://pg.center/docs/12/catalog-pg-opclass.html", "path": "catalog-pg-opclass.html", "label": "PostgreSQL 12 English manual: catalog-pg-opclass.html", "sha256": "c18988ac300a55eb6fbd32e74d3be726f55e2e26b526ed50c4c3f4f0470d8607", "language": "en", "original_url": "/docs/12/catalog-pg-opclass.html"}, {"url": "https://pg.center/docs/12/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 12 English manual: catalog-pg-amop.html", "sha256": "84b91a9d763b1fb2968cc8be226a0369d31a6acb2468eb56cfd0b8d2030d1b45", "language": "en", "original_url": "/docs/12/catalog-pg-amop.html"}, {"url": "https://pg.center/docs/12/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 12 English manual: catalog-pg-amproc.html", "sha256": "8fecd047164ac5772bb48770067c55ab89a810d2ee1686ed316738bc0c18e330", "language": "en", "original_url": "/docs/12/catalog-pg-amproc.html"}, {"url": "https://pg.center/docs/12/spgist-builtin-opclasses.html", "path": "spgist-builtin-opclasses.html", "label": "PostgreSQL 12 English manual: spgist-builtin-opclasses.html", "sha256": "93118bfcfefde56df25637f355fbc4115179bd6e96f8d7ba0c6e447bf62e2d78", "language": "en", "original_url": "/docs/12/spgist-builtin-opclasses.html"}], "sections": [{"title": "\u64cd\u4f5c\u7b26\u7c7b\u4e0e\u5bb6\u65cf", "paragraphs": ["\u4e00\u4e2a\u7d22\u5f15\u5b9a\u4e49\u53ef\u4ee5\u4e3a\u7d22\u5f15\u7684\u6bcf\u4e00\u5217\u6307\u5b9a\u4e00\u4e2a \u64cd\u4f5c\u7b26\u7c7b \u3002", "\u64cd\u4f5c\u7b26\u7c7b\u6807\u8bc6\u8be5\u7d22\u5f15\u5728\u8be5\u5217\u4e0a\u8981\u4f7f\u7528\u54ea\u4e9b\u64cd\u4f5c\u7b26\u3002\u4f8b\u5982\uff0c\u7c7b\u578b int4 \u4e0a\u7684\u4e00\u4e2a B-\u6811\u7d22\u5f15\u4f1a\u4f7f\u7528 int4_ops \u7c7b\uff1b\u8fd9\u4e2a\u64cd\u4f5c\u7b26\u7c7b\u5305\u542b\u5bf9 int4 \u503c\u8fdb\u884c\u6bd4\u8f83\u6240\u9700\u7684\u51fd\u6570\u3002\u5b9e\u8df5\u4e2d\uff0c\u5217\u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u901a\u5e38\u5df2\u7ecf\u8db3\u591f\u3002\u4e4b\u6240\u4ee5\u5b58\u5728\u64cd\u4f5c\u7b26\u7c7b\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5bf9\u67d0\u4e9b\u6570\u636e\u7c7b\u578b\u6765\u8bf4\uff0c\u53ef\u80fd\u5b58\u5728\u591a\u79cd\u6709\u610f\u4e49\u7684\u7d22\u5f15\u884c\u4e3a\u3002\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u80fd\u5e0c\u671b\u6309\u7edd\u5bf9\u503c\u6392\u5e8f\u4e00\u79cd\u590d\u6570\u6570\u636e\u7c7b\u578b\uff0c\u4e5f\u53ef\u80fd\u5e0c\u671b\u6309\u5b9e\u90e8\u6392\u5e8f\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e3a\u8be5\u6570\u636e\u7c7b\u578b\u5b9a\u4e49\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c\u5e76\u5728\u521b\u5efa\u7d22\u5f15\u65f6\u9009\u62e9\u5408\u9002\u7684\u90a3\u4e2a\u6765\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u64cd\u4f5c\u7b26\u7c7b\u51b3\u5b9a\u4e86\u57fa\u7840\u6392\u5e8f\u987a\u5e8f\uff08\u4e4b\u540e\u8fd8\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u6392\u5e8f\u9009\u9879 COLLATE \u3001 ASC / DESC \u548c/\u6216 NULLS FIRST / NULLS LAST \u6765\u4fee\u6539\uff09\u3002", "\u9664\u4e86\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u4e4b\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5185\u7f6e\u64cd\u4f5c\u7b26\u7c7b\uff1a"]}, {"title": "\u4e13\u9898\u624b\u518c\u8bf4\u660e", "paragraphs": ["\u5bf9\u4e8e\u7c7b\u578b point \u7684\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c quad_point_ops \u662f\u9ed8\u8ba4\u9009\u9879\u3002 kd_point_ops \u652f\u6301\u76f8\u540c\u7684\u64cd\u4f5c\u7b26\uff0c\u4f46\u4f7f\u7528\u4e0d\u540c\u7684\u7d22\u5f15\u6570\u636e\u7ed3\u6784\uff0c\u5728\u67d0\u4e9b\u5e94\u7528\u4e2d\u53ef\u80fd\u63d0\u4f9b\u66f4\u597d\u7684\u6027\u80fd\u3002", "quad_point_ops \u3001 kd_point_ops \u548c poly_ops \u64cd\u4f5c\u7b26\u7c7b\u652f\u6301 <-> \u6392\u5e8f\u64cd\u4f5c\u7b26\uff0c\u8fd9\u4f7f\u5f97\u53ef\u4ee5\u5728\u5df2\u5efa\u7acb\u7d22\u5f15\u7684\u70b9\u6216\u591a\u8fb9\u5f62\u6570\u636e\u96c6\u4e0a\u6267\u884c k \u6700\u8fd1\u90bb\uff08 k-NN \uff09\u641c\u7d22\u3002"]}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "description": "is above", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "description": "is left of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "description": "is right of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "description": "is below", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "description": "same as", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7e3d-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "description": "point inside box", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-point-box", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "description": "distance between", "family_slug": "family-spgist-kd_point_ops", "result_type": "float8", "sort_family": "float_ops", "operator_slug": "op-3c2d3e-point-point", "sort_family_slug": "family-btree-float_ops"}], "signature": "spgist/kd_point_ops", "source_oid": "", "description": ["point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002"], "localization": {"status": "complete", "sources": [{"url": "/docs/12/catalog-pg-amop.html", "method": "same-major semantic node", "sha256": "fb1485d72baa6293bbb9db509168fcb9e29aeb84d9eaa463046dffc10c6689ab", "language": "zh", "matched_nodes": ["#CATALOG-PG-AMOP/p[2]/em[1]", "#CATALOG-PG-AMOP/p[2]/em[2]"]}, {"url": "/docs/12/indexes-opclass.html", "method": "same-major semantic node", "sha256": "caf2c6c72b3142db3faa12936bdc35bae99e5144454f5c7391fc02cc93ba1cb1", "language": "zh", "matched_nodes": ["#INDEXES-OPCLASS/p[3]", "#INDEXES-OPCLASS/p[5]", "#INDEXES-OPCLASS/p[6]"]}, {"url": "/docs/12/spgist-builtin-opclasses.html", "method": "same-major semantic node", "sha256": "1ccf58d283c9f9332501a51acda21f0368661a340eb153a1f4ff69d02337a61f", "language": "zh", "matched_nodes": ["#SPGIST-BUILTIN-OPCLASSES/p[4]", "#SPGIST-BUILTIN-OPCLASSES/p[5]"]}], "language": "zh", "original_text": {"/versions/12/description/0": "SP-GiST operator class for point; member of kd_point_ops.", "/versions/12/facts/0/label": "Object kind", "/versions/12/facts/0/value": "Operator class", "/versions/12/facts/1/label": "Index AM", "/versions/12/facts/2/label": "Input type", "/versions/12/facts/3/label": "Stored key type", "/versions/12/facts/3/value": "Same as input type (catalog zero)", "/versions/12/facts/4/label": "Default class", "/versions/12/facts/4/value": "no", "/versions/12/tables/0/title": "Family operator strategies", "/versions/12/tables/1/title": "Family support functions", "/versions/12/tables/2/title": "Classes in this family", "/versions/12/related/0/label": "SP-GiST Index AM", "/versions/12/related/1/label": "kd_point_ops family", "/versions/12/related/2/label": "point data type", "/versions/12/sections/0/title": "Operator classes and families", "/versions/12/sections/1/title": "Specific manual guidance", "/versions/12/tables/0/rows/0/scope": "Class input pair", "/versions/12/tables/0/rows/1/scope": "Class input pair", "/versions/12/tables/0/rows/2/scope": "Class input pair", "/versions/12/tables/0/rows/3/scope": "Class input pair", "/versions/12/tables/0/rows/4/scope": "Class input pair", "/versions/12/tables/0/rows/5/scope": "Family member", "/versions/12/tables/0/rows/6/scope": "Class input pair", "/versions/12/sections/0/paragraphs/0": "An index definition can specify an operator class for each column of an index.", "/versions/12/sections/0/paragraphs/1": "The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).", "/versions/12/sections/0/paragraphs/2": "There are also some built-in operator classes besides the default ones:", "/versions/12/sections/1/paragraphs/0": "Of the two operator classes for type point , quad_point_ops is the default. kd_point_ops supports the same operators but uses a different index data structure that may offer better performance in some applications.", "/versions/12/sections/1/paragraphs/1": "The quad_point_ops , kd_point_ops and poly_ops operator classes support the <-> ordering operator, which enables the k-nearest neighbor ( k-NN ) search over indexed point or polygon data sets.", "/versions/12/tables/0/rows/0/purpose": "search", "/versions/12/tables/0/rows/1/purpose": "search", "/versions/12/tables/0/rows/2/purpose": "search", "/versions/12/tables/0/rows/3/purpose": "search", "/versions/12/tables/0/rows/4/purpose": "search", "/versions/12/tables/0/rows/5/purpose": "search", "/versions/12/tables/0/rows/6/purpose": "ordering", "/versions/12/tables/2/rows/0/default": "no", "/versions/12/tables/0/columns/0/label": "Operator overload", "/versions/12/tables/0/columns/1/label": "Strategy", "/versions/12/tables/0/columns/2/label": "Purpose", "/versions/12/tables/0/columns/3/label": "Ordering family", "/versions/12/tables/0/columns/4/label": "Membership scope", "/versions/12/tables/0/columns/5/label": "Source description", "/versions/12/tables/1/columns/0/label": "Support number", "/versions/12/tables/1/columns/1/label": "Left type", "/versions/12/tables/1/columns/2/label": "Right type", "/versions/12/tables/1/columns/3/label": "Function signature", "/versions/12/tables/1/columns/4/label": "Result type", "/versions/12/tables/2/columns/0/label": "Class", "/versions/12/tables/2/columns/1/label": "Input type", "/versions/12/tables/2/columns/2/label": "Key type", "/versions/12/tables/2/columns/3/label": "Default", "/versions/12/tables/2/rows/0/key_type": "Same as input type", "/versions/12/tables/0/rows/0/description": "is above", "/versions/12/tables/0/rows/1/description": "is left of", "/versions/12/tables/0/rows/2/description": "is right of", "/versions/12/tables/0/rows/3/description": "is below", "/versions/12/tables/0/rows/4/description": "same as", "/versions/12/tables/0/rows/5/description": "point inside box", "/versions/12/tables/0/rows/6/description": "distance between"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "ee1a7044a4d0212112f5f672818e1f511bd6fa2617336d5d7f521b2ff6276dbf"}, "comparison_data": {"kind": "class", "classes": [{"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "sort_family": "float_ops"}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "sort_family": ""}], "attributes": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "bool"}]}, "comparison_hash": "0079a03611a2dd57d7b3133a697793a6c2317964252eeb08699436d56600aa4e", "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool"}]}, "13": {"class": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "facts": [{"label": "\u5bf9\u8c61\u79cd\u7c7b", "value": "\u64cd\u4f5c\u7b26\u7c7b"}, {"label": "\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5", "value": "SP-GiST"}, {"label": "\u8f93\u5165\u7c7b\u578b", "value": "point"}, {"label": "\u5b58\u50a8\u952e\u7c7b\u578b", "value": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c\uff08\u76ee\u5f55\u503c\u4e3a\u96f6\uff09"}, {"label": "\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b", "value": "\u5426"}], "tables": [{"key": "operators", "rows": [{"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e5e-point-point/?v=13", "text": ">^(point,point)"}, "strategy": "11", "description": "\u4f4d\u4e8e\u4e0a\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c-point-point/?v=13", "text": "<<(point,point)"}, "strategy": "1", "description": "\u4f4d\u4e8e\u5de6\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e3e-point-point/?v=13", "text": ">>(point,point)"}, "strategy": "5", "description": "\u4f4d\u4e8e\u53f3\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c5e-point-point/?v=13", "text": "<^(point,point)"}, "strategy": "10", "description": "\u4f4d\u4e8e\u4e0b\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7e3d-point-point/?v=13", "text": "~=(point,point)"}, "strategy": "6", "description": "\u76f8\u540c", "sort_family": ""}, {"scope": "\u5bb6\u65cf\u6210\u5458", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c40-point-box/?v=13", "text": "<@(point,box)"}, "strategy": "8", "description": "\u70b9\u4f4d\u4e8e\u77e9\u5f62\u6846\u5185", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u6392\u5e8f", "operator": {"url": "/wiki/operator/op-3c2d3e-point-point/?v=13", "text": "<->(point,point)"}, "strategy": "15", "description": "\u4e24\u8005\u4e4b\u95f4\u7684\u8ddd\u79bb", "sort_family": "float_ops"}], "title": "\u5bb6\u65cf\u4e2d\u7684\u64cd\u4f5c\u7b26\u7b56\u7565", "columns": [{"key": "operator", "label": "\u64cd\u4f5c\u7b26\u91cd\u8f7d"}, {"key": "strategy", "label": "\u7b56\u7565"}, {"key": "purpose", "label": "\u7528\u9014"}, {"key": "sort_family", "label": "\u6392\u5e8f\u5bb6\u65cf"}, {"key": "scope", "label": "\u6210\u5458\u8303\u56f4"}, {"key": "description", "label": "\u6e90\u7801\u8bf4\u660e"}]}, {"key": "support-functions", "rows": [{"number": "1", "function": "spg_kd_config(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=13", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=13", "text": "point"}, "result_type": "void"}, {"number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=13", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=13", "text": "point"}, "result_type": "void"}, {"number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=13", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=13", "text": "point"}, "result_type": "void"}, {"number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=13", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=13", "text": "point"}, "result_type": "void"}, {"number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=13", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=13", "text": "point"}, "result_type": "bool"}], "title": "\u5bb6\u65cf\u652f\u6301\u51fd\u6570", "columns": [{"key": "number", "label": "\u652f\u6301\u51fd\u6570\u7f16\u53f7"}, {"key": "left_type", "label": "\u5de6\u4fa7\u7c7b\u578b"}, {"key": "right_type", "label": "\u53f3\u4fa7\u7c7b\u578b"}, {"key": "function", "label": "\u51fd\u6570\u7b7e\u540d"}, {"key": "result_type", "label": "\u8fd4\u56de\u7c7b\u578b"}]}, {"key": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-spgist-kd_point_ops/?v=13", "text": "kd_point_ops"}, "default": "\u5426", "key_type": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c", "input_type": {"url": "/wiki/type/point/?v=13", "text": "point"}}], "title": "\u672c\u5bb6\u65cf\u7684\u64cd\u4f5c\u7b26\u7c7b", "columns": [{"key": "class", "label": "\u64cd\u4f5c\u7b26\u7c7b"}, {"key": "input_type", "label": "\u8f93\u5165\u7c7b\u578b"}, {"key": "key_type", "label": "\u952e\u7c7b\u578b"}, {"key": "default", "label": "\u9ed8\u8ba4\u503c"}]}], "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "classes": [{"name": "kd_point_ops", "slug": "class-spgist-kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point", "source_oid": "", "family_slug": "family-spgist-kd_point_ops"}], "related": [{"url": "/wiki/indexam/spgist/?v=13", "label": "SP-GiST \u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5"}, {"url": "/wiki/opclass/family-spgist-kd_point_ops/?v=13", "label": "kd_point_ops \u5bb6\u65cf"}, {"url": "/wiki/type/point/?v=13", "label": "point \u6570\u636e\u7c7b\u578b"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "13.23", "major": "13", "channel": "historical", "revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6", "source_sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6", "manual_fingerprint": "2bbea71f4723fc9e4e58cfdb28368763f999de2800d45ade748f7c7546dfb9d3", "catalog_fingerprint": "df58d29b226fbb90326087233d7970032abdec1352373270449eeee324f84a35"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, {"url": "https://pg.center/docs/13/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 13 English manual: indexes-opclass.html", "sha256": "37723d8b80464e32b69ead59eff6160555679eb963ab37c5c3a8a6cbae1b152b", "language": "en", "original_url": "/docs/13/indexes-opclass.html"}, {"url": "https://pg.center/docs/13/catalog-pg-opclass.html", "path": "catalog-pg-opclass.html", "label": "PostgreSQL 13 English manual: catalog-pg-opclass.html", "sha256": "1e76307cdb5258558db46b22444fc26a671a7dbb4a328b62e8f93deecb9a4caa", "language": "en", "original_url": "/docs/13/catalog-pg-opclass.html"}, {"url": "https://pg.center/docs/13/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 13 English manual: catalog-pg-amop.html", "sha256": "7a8e67f8dc59c305612c6d029fc8760c092f27203d5338c6db6c6d9b8aabc561", "language": "en", "original_url": "/docs/13/catalog-pg-amop.html"}, {"url": "https://pg.center/docs/13/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 13 English manual: catalog-pg-amproc.html", "sha256": "7304d151ac7c668be22d688c152e43989557f61455a75dc74f4660363e7ab9ef", "language": "en", "original_url": "/docs/13/catalog-pg-amproc.html"}, {"url": "https://pg.center/docs/13/spgist-builtin-opclasses.html", "path": "spgist-builtin-opclasses.html", "label": "PostgreSQL 13 English manual: spgist-builtin-opclasses.html", "sha256": "a19a1304749bd20c653dc4e2cf749124a7c1fbf4d3388e02337539d192448dd0", "language": "en", "original_url": "/docs/13/spgist-builtin-opclasses.html"}], "sections": [{"title": "\u64cd\u4f5c\u7b26\u7c7b\u4e0e\u5bb6\u65cf", "paragraphs": ["\u4e00\u4e2a\u7d22\u5f15\u5b9a\u4e49\u53ef\u4ee5\u4e3a\u7d22\u5f15\u7684\u6bcf\u4e00\u5217\u6307\u5b9a\u4e00\u4e2a \u64cd\u4f5c\u7b26\u7c7b \u3002", "\u64cd\u4f5c\u7b26\u7c7b\u6807\u8bc6\u8be5\u7d22\u5f15\u5728\u8be5\u5217\u4e0a\u8981\u4f7f\u7528\u54ea\u4e9b\u64cd\u4f5c\u7b26\u3002\u4f8b\u5982\uff0c\u7c7b\u578b int4 \u4e0a\u7684\u4e00\u4e2a B-\u6811\u7d22\u5f15\u4f1a\u4f7f\u7528 int4_ops \u7c7b\uff1b\u8fd9\u4e2a\u64cd\u4f5c\u7b26\u7c7b\u5305\u542b\u5bf9 int4 \u503c\u8fdb\u884c\u6bd4\u8f83\u6240\u9700\u7684\u51fd\u6570\u3002\u5b9e\u8df5\u4e2d\uff0c\u5217\u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u901a\u5e38\u5df2\u7ecf\u8db3\u591f\u3002\u4e4b\u6240\u4ee5\u5b58\u5728\u64cd\u4f5c\u7b26\u7c7b\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5bf9\u67d0\u4e9b\u6570\u636e\u7c7b\u578b\u6765\u8bf4\uff0c\u53ef\u80fd\u5b58\u5728\u591a\u79cd\u6709\u610f\u4e49\u7684\u7d22\u5f15\u884c\u4e3a\u3002\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u80fd\u5e0c\u671b\u6309\u7edd\u5bf9\u503c\u6392\u5e8f\u4e00\u79cd\u590d\u6570\u6570\u636e\u7c7b\u578b\uff0c\u4e5f\u53ef\u80fd\u5e0c\u671b\u6309\u5b9e\u90e8\u6392\u5e8f\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e3a\u8be5\u6570\u636e\u7c7b\u578b\u5b9a\u4e49\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c\u5e76\u5728\u521b\u5efa\u7d22\u5f15\u65f6\u9009\u62e9\u5408\u9002\u7684\u90a3\u4e2a\u6765\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u64cd\u4f5c\u7b26\u7c7b\u51b3\u5b9a\u4e86\u57fa\u7840\u6392\u5e8f\u987a\u5e8f\uff08\u4e4b\u540e\u8fd8\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u6392\u5e8f\u9009\u9879 COLLATE \u3001 ASC / DESC \u548c/\u6216 NULLS FIRST / NULLS LAST \u6765\u4fee\u6539\uff09\u3002", "\u9664\u4e86\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u4e4b\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5185\u7f6e\u64cd\u4f5c\u7b26\u7c7b\uff1a"]}, {"title": "\u4e13\u9898\u624b\u518c\u8bf4\u660e", "paragraphs": ["\u5bf9\u4e8e\u7c7b\u578b point \u7684\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c quad_point_ops \u662f\u9ed8\u8ba4\u9009\u9879\u3002 kd_point_ops \u652f\u6301\u76f8\u540c\u7684\u64cd\u4f5c\u7b26\uff0c\u4f46\u4f7f\u7528\u4e0d\u540c\u7684\u7d22\u5f15\u6570\u636e\u7ed3\u6784\uff0c\u5728\u67d0\u4e9b\u5e94\u7528\u4e2d\u53ef\u80fd\u63d0\u4f9b\u66f4\u597d\u7684\u6027\u80fd\u3002", "quad_point_ops \u3001 kd_point_ops \u548c poly_ops \u64cd\u4f5c\u7b26\u7c7b\u652f\u6301 <-> \u6392\u5e8f\u64cd\u4f5c\u7b26\uff0c\u8fd9\u4f7f\u5f97\u53ef\u4ee5\u5728\u5df2\u5efa\u7acb\u7d22\u5f15\u7684\u70b9\u6216\u591a\u8fb9\u5f62\u6570\u636e\u96c6\u4e0a\u6267\u884c k \u6700\u8fd1\u90bb\uff08 k-NN \uff09\u641c\u7d22\u3002"]}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "description": "is above", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "description": "is left of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "description": "is right of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "description": "is below", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "description": "same as", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7e3d-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "description": "point inside box", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-point-box", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "description": "distance between", "family_slug": "family-spgist-kd_point_ops", "result_type": "float8", "sort_family": "float_ops", "operator_slug": "op-3c2d3e-point-point", "sort_family_slug": "family-btree-float_ops"}], "signature": "spgist/kd_point_ops", "source_oid": "", "description": ["point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002"], "localization": {"status": "complete", "sources": [{"url": "/docs/13/catalog-pg-amop.html", "method": "same-major semantic node", "sha256": "344df36a802a949f2a1e178d6708bf07012cd0daff6368987f59cab3023d2853", "language": "zh", "matched_nodes": ["#CATALOG-PG-AMOP/p[2]/em[1]", "#CATALOG-PG-AMOP/p[2]/em[2]"]}, {"url": "/docs/13/indexes-opclass.html", "method": "same-major semantic node", "sha256": "000af3648471325f388091b478e7d22683ce58bd59f5f9463c09b36504a22d3d", "language": "zh", "matched_nodes": ["#INDEXES-OPCLASS/p[3]", "#INDEXES-OPCLASS/p[5]", "#INDEXES-OPCLASS/p[6]"]}, {"url": "/docs/13/spgist-builtin-opclasses.html", "method": "same-major semantic node", "sha256": "d19196a531ec268ab69122c255cb95361c9c4059ca48dcd67cff7507c8d686b6", "language": "zh", "matched_nodes": ["#SPGIST-BUILTIN-OPCLASSES/p[4]", "#SPGIST-BUILTIN-OPCLASSES/p[5]"]}], "language": "zh", "original_text": {"/versions/13/description/0": "SP-GiST operator class for point; member of kd_point_ops.", "/versions/13/facts/0/label": "Object kind", "/versions/13/facts/0/value": "Operator class", "/versions/13/facts/1/label": "Index AM", "/versions/13/facts/2/label": "Input type", "/versions/13/facts/3/label": "Stored key type", "/versions/13/facts/3/value": "Same as input type (catalog zero)", "/versions/13/facts/4/label": "Default class", "/versions/13/facts/4/value": "no", "/versions/13/tables/0/title": "Family operator strategies", "/versions/13/tables/1/title": "Family support functions", "/versions/13/tables/2/title": "Classes in this family", "/versions/13/related/0/label": "SP-GiST Index AM", "/versions/13/related/1/label": "kd_point_ops family", "/versions/13/related/2/label": "point data type", "/versions/13/sections/0/title": "Operator classes and families", "/versions/13/sections/1/title": "Specific manual guidance", "/versions/13/tables/0/rows/0/scope": "Class input pair", "/versions/13/tables/0/rows/1/scope": "Class input pair", "/versions/13/tables/0/rows/2/scope": "Class input pair", "/versions/13/tables/0/rows/3/scope": "Class input pair", "/versions/13/tables/0/rows/4/scope": "Class input pair", "/versions/13/tables/0/rows/5/scope": "Family member", "/versions/13/tables/0/rows/6/scope": "Class input pair", "/versions/13/sections/0/paragraphs/0": "An index definition can specify an operator class for each column of an index.", "/versions/13/sections/0/paragraphs/1": "The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).", "/versions/13/sections/0/paragraphs/2": "There are also some built-in operator classes besides the default ones:", "/versions/13/sections/1/paragraphs/0": "Of the two operator classes for type point , quad_point_ops is the default. kd_point_ops supports the same operators but uses a different index data structure that may offer better performance in some applications.", "/versions/13/sections/1/paragraphs/1": "The quad_point_ops , kd_point_ops and poly_ops operator classes support the <-> ordering operator, which enables the k-nearest neighbor ( k-NN ) search over indexed point or polygon data sets.", "/versions/13/tables/0/rows/0/purpose": "search", "/versions/13/tables/0/rows/1/purpose": "search", "/versions/13/tables/0/rows/2/purpose": "search", "/versions/13/tables/0/rows/3/purpose": "search", "/versions/13/tables/0/rows/4/purpose": "search", "/versions/13/tables/0/rows/5/purpose": "search", "/versions/13/tables/0/rows/6/purpose": "ordering", "/versions/13/tables/2/rows/0/default": "no", "/versions/13/tables/0/columns/0/label": "Operator overload", "/versions/13/tables/0/columns/1/label": "Strategy", "/versions/13/tables/0/columns/2/label": "Purpose", "/versions/13/tables/0/columns/3/label": "Ordering family", "/versions/13/tables/0/columns/4/label": "Membership scope", "/versions/13/tables/0/columns/5/label": "Source description", "/versions/13/tables/1/columns/0/label": "Support number", "/versions/13/tables/1/columns/1/label": "Left type", "/versions/13/tables/1/columns/2/label": "Right type", "/versions/13/tables/1/columns/3/label": "Function signature", "/versions/13/tables/1/columns/4/label": "Result type", "/versions/13/tables/2/columns/0/label": "Class", "/versions/13/tables/2/columns/1/label": "Input type", "/versions/13/tables/2/columns/2/label": "Key type", "/versions/13/tables/2/columns/3/label": "Default", "/versions/13/tables/2/rows/0/key_type": "Same as input type", "/versions/13/tables/0/rows/0/description": "is above", "/versions/13/tables/0/rows/1/description": "is left of", "/versions/13/tables/0/rows/2/description": "is right of", "/versions/13/tables/0/rows/3/description": "is below", "/versions/13/tables/0/rows/4/description": "same as", "/versions/13/tables/0/rows/5/description": "point inside box", "/versions/13/tables/0/rows/6/description": "distance between"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "685fc7deafb0a5688b2219b99a5f802c34fbb22f4e012b59287a1c04827ef8ac"}, "comparison_data": {"kind": "class", "classes": [{"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "sort_family": "float_ops"}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "sort_family": ""}], "attributes": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "bool"}]}, "comparison_hash": "0079a03611a2dd57d7b3133a697793a6c2317964252eeb08699436d56600aa4e", "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool"}]}, "14": {"class": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "facts": [{"label": "\u5bf9\u8c61\u79cd\u7c7b", "value": "\u64cd\u4f5c\u7b26\u7c7b"}, {"label": "\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5", "value": "SP-GiST"}, {"label": "\u8f93\u5165\u7c7b\u578b", "value": "point"}, {"label": "\u5b58\u50a8\u952e\u7c7b\u578b", "value": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c\uff08\u76ee\u5f55\u503c\u4e3a\u96f6\uff09"}, {"label": "\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b", "value": "\u5426"}], "tables": [{"key": "operators", "rows": [{"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7c3e3e-point-point/?v=14", "text": "|>>(point,point)"}, "strategy": "11", "description": "\u4f4d\u4e8e\u4e0a\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e5e-point-point/?v=14", "text": ">^(point,point)"}, "strategy": "30", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 |>>", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c-point-point/?v=14", "text": "<<(point,point)"}, "strategy": "1", "description": "\u4f4d\u4e8e\u5de6\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e3e-point-point/?v=14", "text": ">>(point,point)"}, "strategy": "5", "description": "\u4f4d\u4e8e\u53f3\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c7c-point-point/?v=14", "text": "<<|(point,point)"}, "strategy": "10", "description": "\u4f4d\u4e8e\u4e0b\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c5e-point-point/?v=14", "text": "<^(point,point)"}, "strategy": "29", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 <<|", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7e3d-point-point/?v=14", "text": "~=(point,point)"}, "strategy": "6", "description": "\u76f8\u540c", "sort_family": ""}, {"scope": "\u5bb6\u65cf\u6210\u5458", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c40-point-box/?v=14", "text": "<@(point,box)"}, "strategy": "8", "description": "\u70b9\u4f4d\u4e8e\u77e9\u5f62\u6846\u5185", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u6392\u5e8f", "operator": {"url": "/wiki/operator/op-3c2d3e-point-point/?v=14", "text": "<->(point,point)"}, "strategy": "15", "description": "\u4e24\u8005\u4e4b\u95f4\u7684\u8ddd\u79bb", "sort_family": "float_ops"}], "title": "\u5bb6\u65cf\u4e2d\u7684\u64cd\u4f5c\u7b26\u7b56\u7565", "columns": [{"key": "operator", "label": "\u64cd\u4f5c\u7b26\u91cd\u8f7d"}, {"key": "strategy", "label": "\u7b56\u7565"}, {"key": "purpose", "label": "\u7528\u9014"}, {"key": "sort_family", "label": "\u6392\u5e8f\u5bb6\u65cf"}, {"key": "scope", "label": "\u6210\u5458\u8303\u56f4"}, {"key": "description", "label": "\u6e90\u7801\u8bf4\u660e"}]}, {"key": "support-functions", "rows": [{"number": "1", "function": "spg_kd_config(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=14", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=14", "text": "point"}, "result_type": "void"}, {"number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=14", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=14", "text": "point"}, "result_type": "void"}, {"number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=14", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=14", "text": "point"}, "result_type": "void"}, {"number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=14", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=14", "text": "point"}, "result_type": "void"}, {"number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=14", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=14", "text": "point"}, "result_type": "bool"}], "title": "\u5bb6\u65cf\u652f\u6301\u51fd\u6570", "columns": [{"key": "number", "label": "\u652f\u6301\u51fd\u6570\u7f16\u53f7"}, {"key": "left_type", "label": "\u5de6\u4fa7\u7c7b\u578b"}, {"key": "right_type", "label": "\u53f3\u4fa7\u7c7b\u578b"}, {"key": "function", "label": "\u51fd\u6570\u7b7e\u540d"}, {"key": "result_type", "label": "\u8fd4\u56de\u7c7b\u578b"}]}, {"key": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-spgist-kd_point_ops/?v=14", "text": "kd_point_ops"}, "default": "\u5426", "key_type": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c", "input_type": {"url": "/wiki/type/point/?v=14", "text": "point"}}], "title": "\u672c\u5bb6\u65cf\u7684\u64cd\u4f5c\u7b26\u7c7b", "columns": [{"key": "class", "label": "\u64cd\u4f5c\u7b26\u7c7b"}, {"key": "input_type", "label": "\u8f93\u5165\u7c7b\u578b"}, {"key": "key_type", "label": "\u952e\u7c7b\u578b"}, {"key": "default", "label": "\u9ed8\u8ba4\u503c"}]}], "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "classes": [{"name": "kd_point_ops", "slug": "class-spgist-kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point", "source_oid": "", "family_slug": "family-spgist-kd_point_ops"}], "related": [{"url": "/wiki/indexam/spgist/?v=14", "label": "SP-GiST \u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5"}, {"url": "/wiki/opclass/family-spgist-kd_point_ops/?v=14", "label": "kd_point_ops \u5bb6\u65cf"}, {"url": "/wiki/type/point/?v=14", "label": "point \u6570\u636e\u7c7b\u578b"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "14.24", "major": "14", "channel": "stable", "revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897", "source_sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897", "manual_fingerprint": "1d055c6dc55d4defe2b6e9d0f842a47005487b21025b67e51d06721d3c122f71", "catalog_fingerprint": "9e0116f26e5ce870719efb77ef7b73e30c7928f8af27cbe87fdea32efe3811ef"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, {"url": "https://pg.center/docs/14/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 14 English manual: indexes-opclass.html", "sha256": "b7e355fb7c1e6fe473dc70d4c7e73cd3aa9a11dddd2e32ece5e8effbdb910c0b", "language": "en", "original_url": "/docs/14/indexes-opclass.html"}, {"url": "https://pg.center/docs/14/catalog-pg-opclass.html", "path": "catalog-pg-opclass.html", "label": "PostgreSQL 14 English manual: catalog-pg-opclass.html", "sha256": "5d3fff50f233fb5f05727c29139ff9b4505048755dbb88acbcf550528005f2dd", "language": "en", "original_url": "/docs/14/catalog-pg-opclass.html"}, {"url": "https://pg.center/docs/14/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 14 English manual: catalog-pg-amop.html", "sha256": "402b87d7fb1a313b096ba5349a676ae38d507e2eb98739d6ed7f0681e0b9a9a4", "language": "en", "original_url": "/docs/14/catalog-pg-amop.html"}, {"url": "https://pg.center/docs/14/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 14 English manual: catalog-pg-amproc.html", "sha256": "5b918a7eba7592dc13a32a8fcbb7ca0a198d8f4d2b8a85b3c7befbc7705d44a1", "language": "en", "original_url": "/docs/14/catalog-pg-amproc.html"}, {"url": "https://pg.center/docs/14/spgist-builtin-opclasses.html", "path": "spgist-builtin-opclasses.html", "label": "PostgreSQL 14 English manual: spgist-builtin-opclasses.html", "sha256": "4b65b4af3942910a32748f9616aa8853410d556a539153935fda047a41867f02", "language": "en", "original_url": "/docs/14/spgist-builtin-opclasses.html"}], "sections": [{"title": "\u64cd\u4f5c\u7b26\u7c7b\u4e0e\u5bb6\u65cf", "paragraphs": ["\u4e00\u4e2a\u7d22\u5f15\u5b9a\u4e49\u53ef\u4ee5\u4e3a\u7d22\u5f15\u7684\u6bcf\u4e00\u5217\u6307\u5b9a\u4e00\u4e2a \u64cd\u4f5c\u7b26\u7c7b \u3002", "\u64cd\u4f5c\u7b26\u7c7b\u6807\u8bc6\u8be5\u7d22\u5f15\u5728\u8be5\u5217\u4e0a\u8981\u4f7f\u7528\u54ea\u4e9b\u64cd\u4f5c\u7b26\u3002\u4f8b\u5982\uff0c\u7c7b\u578b int4 \u4e0a\u7684\u4e00\u4e2a B-\u6811\u7d22\u5f15\u4f1a\u4f7f\u7528 int4_ops \u7c7b\uff1b\u8fd9\u4e2a\u64cd\u4f5c\u7b26\u7c7b\u5305\u542b\u5bf9 int4 \u503c\u8fdb\u884c\u6bd4\u8f83\u6240\u9700\u7684\u51fd\u6570\u3002\u5b9e\u8df5\u4e2d\uff0c\u5217\u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u901a\u5e38\u5df2\u7ecf\u8db3\u591f\u3002\u4e4b\u6240\u4ee5\u5b58\u5728\u64cd\u4f5c\u7b26\u7c7b\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5bf9\u67d0\u4e9b\u6570\u636e\u7c7b\u578b\u6765\u8bf4\uff0c\u53ef\u80fd\u5b58\u5728\u591a\u79cd\u6709\u610f\u4e49\u7684\u7d22\u5f15\u884c\u4e3a\u3002\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u80fd\u5e0c\u671b\u6309\u7edd\u5bf9\u503c\u6392\u5e8f\u4e00\u79cd\u590d\u6570\u6570\u636e\u7c7b\u578b\uff0c\u4e5f\u53ef\u80fd\u5e0c\u671b\u6309\u5b9e\u90e8\u6392\u5e8f\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e3a\u8be5\u6570\u636e\u7c7b\u578b\u5b9a\u4e49\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c\u5e76\u5728\u521b\u5efa\u7d22\u5f15\u65f6\u9009\u62e9\u5408\u9002\u7684\u90a3\u4e2a\u6765\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u64cd\u4f5c\u7b26\u7c7b\u51b3\u5b9a\u4e86\u57fa\u7840\u6392\u5e8f\u987a\u5e8f\uff08\u4e4b\u540e\u8fd8\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u6392\u5e8f\u9009\u9879 COLLATE \u3001 ASC / DESC \u548c/\u6216 NULLS FIRST / NULLS LAST \u6765\u4fee\u6539\uff09\u3002", "\u9664\u4e86\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u4e4b\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5185\u7f6e\u64cd\u4f5c\u7b26\u7c7b\uff1a"]}, {"title": "\u4e13\u9898\u624b\u518c\u8bf4\u660e", "paragraphs": ["\u5bf9\u4e8e\u7c7b\u578b point \u7684\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c quad_point_ops \u662f\u9ed8\u8ba4\u9009\u9879\u3002 kd_point_ops \u652f\u6301\u76f8\u540c\u7684\u64cd\u4f5c\u7b26\uff0c\u4f46\u4f7f\u7528\u4e0d\u540c\u7684\u7d22\u5f15\u6570\u636e\u7ed3\u6784\uff0c\u5728\u67d0\u4e9b\u5e94\u7528\u4e2d\u53ef\u80fd\u63d0\u4f9b\u66f4\u597d\u7684\u6027\u80fd\u3002", "quad_point_ops \u3001 kd_point_ops \u548c poly_ops \u64cd\u4f5c\u7b26\u7c7b\u652f\u6301 <-> \u6392\u5e8f\u64cd\u4f5c\u7b26\uff0c\u8fd9\u4f7f\u5f97\u53ef\u4ee5\u5728\u5df2\u5efa\u7acb\u7d22\u5f15\u7684\u70b9\u6216\u591a\u8fb9\u5f62\u6570\u636e\u96c6\u4e0a\u6267\u884c k \u6700\u8fd1\u90bb\uff08 k-NN \uff09\u641c\u7d22\u3002"]}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "description": "is above", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7c3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "description": "deprecated, use |>> instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "description": "is left of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "description": "is right of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "description": "is below", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c7c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "description": "deprecated, use <<| instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "description": "same as", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7e3d-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "description": "point inside box", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-point-box", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "description": "distance between", "family_slug": "family-spgist-kd_point_ops", "result_type": "float8", "sort_family": "float_ops", "operator_slug": "op-3c2d3e-point-point", "sort_family_slug": "family-btree-float_ops"}], "signature": "spgist/kd_point_ops", "source_oid": "", "description": ["point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002"], "localization": {"status": "complete", "sources": [{"url": "/docs/14/catalog-pg-amop.html", "method": "same-major semantic node", "sha256": "2b8fdc15654f6701ab77bdf068a2c3b50cadd8da3bce8f385811b4193b4952b4", "language": "zh", "matched_nodes": ["#CATALOG-PG-AMOP/p[2]/em[1]", "#CATALOG-PG-AMOP/p[2]/em[2]"]}, {"url": "/docs/14/indexes-opclass.html", "method": "same-major semantic node", "sha256": "4cb8380e551ee45907962594be66e8173948c404caa5f227b1672e5d298bd128", "language": "zh", "matched_nodes": ["#INDEXES-OPCLASS/p[3]", "#INDEXES-OPCLASS/p[5]", "#INDEXES-OPCLASS/p[6]"]}, {"url": "/docs/14/spgist-builtin-opclasses.html", "method": "same-major semantic node", "sha256": "9b40ad76171fc70c7cd7dac071ccc7ff3fa1cf24410a009edbe22987b2842c73", "language": "zh", "matched_nodes": ["#SPGIST-BUILTIN-OPCLASSES/p[4]", "#SPGIST-BUILTIN-OPCLASSES/p[5]"]}], "language": "zh", "original_text": {"/versions/14/description/0": "SP-GiST operator class for point; member of kd_point_ops.", "/versions/14/facts/0/label": "Object kind", "/versions/14/facts/0/value": "Operator class", "/versions/14/facts/1/label": "Index AM", "/versions/14/facts/2/label": "Input type", "/versions/14/facts/3/label": "Stored key type", "/versions/14/facts/3/value": "Same as input type (catalog zero)", "/versions/14/facts/4/label": "Default class", "/versions/14/facts/4/value": "no", "/versions/14/tables/0/title": "Family operator strategies", "/versions/14/tables/1/title": "Family support functions", "/versions/14/tables/2/title": "Classes in this family", "/versions/14/related/0/label": "SP-GiST Index AM", "/versions/14/related/1/label": "kd_point_ops family", "/versions/14/related/2/label": "point data type", "/versions/14/sections/0/title": "Operator classes and families", "/versions/14/sections/1/title": "Specific manual guidance", "/versions/14/tables/0/rows/0/scope": "Class input pair", "/versions/14/tables/0/rows/1/scope": "Class input pair", "/versions/14/tables/0/rows/2/scope": "Class input pair", "/versions/14/tables/0/rows/3/scope": "Class input pair", "/versions/14/tables/0/rows/4/scope": "Class input pair", "/versions/14/tables/0/rows/5/scope": "Class input pair", "/versions/14/tables/0/rows/6/scope": "Class input pair", "/versions/14/tables/0/rows/7/scope": "Family member", "/versions/14/tables/0/rows/8/scope": "Class input pair", "/versions/14/sections/0/paragraphs/0": "An index definition can specify an operator class for each column of an index.", "/versions/14/sections/0/paragraphs/1": "The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).", "/versions/14/sections/0/paragraphs/2": "There are also some built-in operator classes besides the default ones:", "/versions/14/sections/1/paragraphs/0": "Of the two operator classes for type point , quad_point_ops is the default. kd_point_ops supports the same operators but uses a different index data structure that may offer better performance in some applications.", "/versions/14/sections/1/paragraphs/1": "The quad_point_ops , kd_point_ops and poly_ops operator classes support the <-> ordering operator, which enables the k-nearest neighbor ( k-NN ) search over indexed point or polygon data sets.", "/versions/14/tables/0/rows/0/purpose": "search", "/versions/14/tables/0/rows/1/purpose": "search", "/versions/14/tables/0/rows/2/purpose": "search", "/versions/14/tables/0/rows/3/purpose": "search", "/versions/14/tables/0/rows/4/purpose": "search", "/versions/14/tables/0/rows/5/purpose": "search", "/versions/14/tables/0/rows/6/purpose": "search", "/versions/14/tables/0/rows/7/purpose": "search", "/versions/14/tables/0/rows/8/purpose": "ordering", "/versions/14/tables/2/rows/0/default": "no", "/versions/14/tables/0/columns/0/label": "Operator overload", "/versions/14/tables/0/columns/1/label": "Strategy", "/versions/14/tables/0/columns/2/label": "Purpose", "/versions/14/tables/0/columns/3/label": "Ordering family", "/versions/14/tables/0/columns/4/label": "Membership scope", "/versions/14/tables/0/columns/5/label": "Source description", "/versions/14/tables/1/columns/0/label": "Support number", "/versions/14/tables/1/columns/1/label": "Left type", "/versions/14/tables/1/columns/2/label": "Right type", "/versions/14/tables/1/columns/3/label": "Function signature", "/versions/14/tables/1/columns/4/label": "Result type", "/versions/14/tables/2/columns/0/label": "Class", "/versions/14/tables/2/columns/1/label": "Input type", "/versions/14/tables/2/columns/2/label": "Key type", "/versions/14/tables/2/columns/3/label": "Default", "/versions/14/tables/2/rows/0/key_type": "Same as input type", "/versions/14/tables/0/rows/0/description": "is above", "/versions/14/tables/0/rows/1/description": "deprecated, use |>> instead", "/versions/14/tables/0/rows/2/description": "is left of", "/versions/14/tables/0/rows/3/description": "is right of", "/versions/14/tables/0/rows/4/description": "is below", "/versions/14/tables/0/rows/5/description": "deprecated, use <<| instead", "/versions/14/tables/0/rows/6/description": "same as", "/versions/14/tables/0/rows/7/description": "point inside box", "/versions/14/tables/0/rows/8/description": "distance between"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "d8f724be55674944c6e644762507d704a386cd5eea10a1d80107c5056f101306"}, "comparison_data": {"kind": "class", "classes": [{"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "sort_family": "float_ops"}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "sort_family": ""}], "attributes": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "bool"}]}, "comparison_hash": "d6cfa2963f1bb6f01544eff3ea7b1b19e01c64fd2e27c475edff84345d1476c7", "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool"}]}, "15": {"class": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "facts": [{"label": "\u5bf9\u8c61\u79cd\u7c7b", "value": "\u64cd\u4f5c\u7b26\u7c7b"}, {"label": "\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5", "value": "SP-GiST"}, {"label": "\u8f93\u5165\u7c7b\u578b", "value": "point"}, {"label": "\u5b58\u50a8\u952e\u7c7b\u578b", "value": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c\uff08\u76ee\u5f55\u503c\u4e3a\u96f6\uff09"}, {"label": "\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b", "value": "\u5426"}], "tables": [{"key": "operators", "rows": [{"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7c3e3e-point-point/?v=15", "text": "|>>(point,point)"}, "strategy": "11", "description": "\u4f4d\u4e8e\u4e0a\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e5e-point-point/?v=15", "text": ">^(point,point)"}, "strategy": "30", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 |>>", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c-point-point/?v=15", "text": "<<(point,point)"}, "strategy": "1", "description": "\u4f4d\u4e8e\u5de6\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e3e-point-point/?v=15", "text": ">>(point,point)"}, "strategy": "5", "description": "\u4f4d\u4e8e\u53f3\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c7c-point-point/?v=15", "text": "<<|(point,point)"}, "strategy": "10", "description": "\u4f4d\u4e8e\u4e0b\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c5e-point-point/?v=15", "text": "<^(point,point)"}, "strategy": "29", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 <<|", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7e3d-point-point/?v=15", "text": "~=(point,point)"}, "strategy": "6", "description": "\u76f8\u540c", "sort_family": ""}, {"scope": "\u5bb6\u65cf\u6210\u5458", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c40-point-box/?v=15", "text": "<@(point,box)"}, "strategy": "8", "description": "\u70b9\u4f4d\u4e8e\u77e9\u5f62\u6846\u5185", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u6392\u5e8f", "operator": {"url": "/wiki/operator/op-3c2d3e-point-point/?v=15", "text": "<->(point,point)"}, "strategy": "15", "description": "\u4e24\u8005\u4e4b\u95f4\u7684\u8ddd\u79bb", "sort_family": "float_ops"}], "title": "\u5bb6\u65cf\u4e2d\u7684\u64cd\u4f5c\u7b26\u7b56\u7565", "columns": [{"key": "operator", "label": "\u64cd\u4f5c\u7b26\u91cd\u8f7d"}, {"key": "strategy", "label": "\u7b56\u7565"}, {"key": "purpose", "label": "\u7528\u9014"}, {"key": "sort_family", "label": "\u6392\u5e8f\u5bb6\u65cf"}, {"key": "scope", "label": "\u6210\u5458\u8303\u56f4"}, {"key": "description", "label": "\u6e90\u7801\u8bf4\u660e"}]}, {"key": "support-functions", "rows": [{"number": "1", "function": "spg_kd_config(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=15", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=15", "text": "point"}, "result_type": "void"}, {"number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=15", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=15", "text": "point"}, "result_type": "void"}, {"number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=15", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=15", "text": "point"}, "result_type": "void"}, {"number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=15", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=15", "text": "point"}, "result_type": "void"}, {"number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=15", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=15", "text": "point"}, "result_type": "bool"}], "title": "\u5bb6\u65cf\u652f\u6301\u51fd\u6570", "columns": [{"key": "number", "label": "\u652f\u6301\u51fd\u6570\u7f16\u53f7"}, {"key": "left_type", "label": "\u5de6\u4fa7\u7c7b\u578b"}, {"key": "right_type", "label": "\u53f3\u4fa7\u7c7b\u578b"}, {"key": "function", "label": "\u51fd\u6570\u7b7e\u540d"}, {"key": "result_type", "label": "\u8fd4\u56de\u7c7b\u578b"}]}, {"key": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-spgist-kd_point_ops/?v=15", "text": "kd_point_ops"}, "default": "\u5426", "key_type": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c", "input_type": {"url": "/wiki/type/point/?v=15", "text": "point"}}], "title": "\u672c\u5bb6\u65cf\u7684\u64cd\u4f5c\u7b26\u7c7b", "columns": [{"key": "class", "label": "\u64cd\u4f5c\u7b26\u7c7b"}, {"key": "input_type", "label": "\u8f93\u5165\u7c7b\u578b"}, {"key": "key_type", "label": "\u952e\u7c7b\u578b"}, {"key": "default", "label": "\u9ed8\u8ba4\u503c"}]}], "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "classes": [{"name": "kd_point_ops", "slug": "class-spgist-kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point", "source_oid": "", "family_slug": "family-spgist-kd_point_ops"}], "related": [{"url": "/wiki/indexam/spgist/?v=15", "label": "SP-GiST \u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5"}, {"url": "/wiki/opclass/family-spgist-kd_point_ops/?v=15", "label": "kd_point_ops \u5bb6\u65cf"}, {"url": "/wiki/type/point/?v=15", "label": "point \u6570\u636e\u7c7b\u578b"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "15.19", "major": "15", "channel": "stable", "revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89", "source_sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89", "manual_fingerprint": "f39c61e9facb5b9404c7d6d1cf494d83af0cc46146554a7fc40724eb882d24a9", "catalog_fingerprint": "1c332a5ccec7bfdd8ca19b55a0279b5bd6cb1dd5dcc6c5587a98a491a9b566a5"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, {"url": "https://pg.center/docs/15/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 15 English manual: indexes-opclass.html", "sha256": "57685c0a60cb570754be680551a6947556a03b6ff16a4a511483bdcac143c6da", "language": "en", "original_url": "/docs/15/indexes-opclass.html"}, {"url": "https://pg.center/docs/15/catalog-pg-opclass.html", "path": "catalog-pg-opclass.html", "label": "PostgreSQL 15 English manual: catalog-pg-opclass.html", "sha256": "755f7dcb5d8201f84a8285b418477e209122f0dd4a1c0e5b1b9b293a52a3f5cb", "language": "en", "original_url": "/docs/15/catalog-pg-opclass.html"}, {"url": "https://pg.center/docs/15/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 15 English manual: catalog-pg-amop.html", "sha256": "53ced8770f19710869151ab02a9a6f0d97380981ca4bfe83752092bfb74a9e0c", "language": "en", "original_url": "/docs/15/catalog-pg-amop.html"}, {"url": "https://pg.center/docs/15/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 15 English manual: catalog-pg-amproc.html", "sha256": "cdcce97c140ef4b73e0abc870c6a7f0d8ebda9f31d4c02b3f5444f50828d7f37", "language": "en", "original_url": "/docs/15/catalog-pg-amproc.html"}, {"url": "https://pg.center/docs/15/spgist-builtin-opclasses.html", "path": "spgist-builtin-opclasses.html", "label": "PostgreSQL 15 English manual: spgist-builtin-opclasses.html", "sha256": "310bd41a47574992e69748046a39f6c316012dc8cb29247fd5b493bcf795f19a", "language": "en", "original_url": "/docs/15/spgist-builtin-opclasses.html"}], "sections": [{"title": "\u64cd\u4f5c\u7b26\u7c7b\u4e0e\u5bb6\u65cf", "paragraphs": ["\u4e00\u4e2a\u7d22\u5f15\u5b9a\u4e49\u53ef\u4ee5\u4e3a\u7d22\u5f15\u7684\u6bcf\u4e00\u5217\u6307\u5b9a\u4e00\u4e2a \u64cd\u4f5c\u7b26\u7c7b \u3002", "\u64cd\u4f5c\u7b26\u7c7b\u6807\u8bc6\u8be5\u7d22\u5f15\u5728\u8be5\u5217\u4e0a\u8981\u4f7f\u7528\u54ea\u4e9b\u64cd\u4f5c\u7b26\u3002\u4f8b\u5982\uff0c\u7c7b\u578b int4 \u4e0a\u7684\u4e00\u4e2a B-\u6811\u7d22\u5f15\u4f1a\u4f7f\u7528 int4_ops \u7c7b\uff1b\u8fd9\u4e2a\u64cd\u4f5c\u7b26\u7c7b\u5305\u542b\u5bf9 int4 \u503c\u8fdb\u884c\u6bd4\u8f83\u6240\u9700\u7684\u51fd\u6570\u3002\u5b9e\u8df5\u4e2d\uff0c\u5217\u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u901a\u5e38\u5df2\u7ecf\u8db3\u591f\u3002\u4e4b\u6240\u4ee5\u5b58\u5728\u64cd\u4f5c\u7b26\u7c7b\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5bf9\u67d0\u4e9b\u6570\u636e\u7c7b\u578b\u6765\u8bf4\uff0c\u53ef\u80fd\u5b58\u5728\u591a\u79cd\u6709\u610f\u4e49\u7684\u7d22\u5f15\u884c\u4e3a\u3002\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u80fd\u5e0c\u671b\u6309\u7edd\u5bf9\u503c\u6392\u5e8f\u4e00\u79cd\u590d\u6570\u6570\u636e\u7c7b\u578b\uff0c\u4e5f\u53ef\u80fd\u5e0c\u671b\u6309\u5b9e\u90e8\u6392\u5e8f\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e3a\u8be5\u6570\u636e\u7c7b\u578b\u5b9a\u4e49\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c\u5e76\u5728\u521b\u5efa\u7d22\u5f15\u65f6\u9009\u62e9\u5408\u9002\u7684\u90a3\u4e2a\u6765\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u64cd\u4f5c\u7b26\u7c7b\u51b3\u5b9a\u4e86\u57fa\u7840\u6392\u5e8f\u987a\u5e8f\uff08\u4e4b\u540e\u8fd8\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u6392\u5e8f\u9009\u9879 COLLATE \u3001 ASC / DESC \u548c/\u6216 NULLS FIRST / NULLS LAST \u6765\u4fee\u6539\uff09\u3002", "\u9664\u4e86\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u4e4b\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5185\u7f6e\u64cd\u4f5c\u7b26\u7c7b\uff1a"]}, {"title": "\u4e13\u9898\u624b\u518c\u8bf4\u660e", "paragraphs": ["\u5bf9\u4e8e\u7c7b\u578b point \u7684\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c quad_point_ops \u662f\u9ed8\u8ba4\u9009\u9879\u3002 kd_point_ops \u652f\u6301\u76f8\u540c\u7684\u64cd\u4f5c\u7b26\uff0c\u4f46\u4f7f\u7528\u4e0d\u540c\u7684\u7d22\u5f15\u6570\u636e\u7ed3\u6784\uff0c\u5728\u67d0\u4e9b\u5e94\u7528\u4e2d\u53ef\u80fd\u63d0\u4f9b\u66f4\u597d\u7684\u6027\u80fd\u3002", "quad_point_ops \u3001 kd_point_ops \u548c poly_ops \u64cd\u4f5c\u7b26\u7c7b\u652f\u6301 <-> \u6392\u5e8f\u64cd\u4f5c\u7b26\uff0c\u8fd9\u4f7f\u5f97\u53ef\u4ee5\u5728\u5df2\u5efa\u7acb\u7d22\u5f15\u7684\u70b9\u6216\u591a\u8fb9\u5f62\u6570\u636e\u96c6\u4e0a\u6267\u884c k \u6700\u8fd1\u90bb\uff08 k-NN \uff09\u641c\u7d22\u3002"]}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "description": "is above", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7c3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "description": "deprecated, use |>> instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "description": "is left of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "description": "is right of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "description": "is below", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c7c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "description": "deprecated, use <<| instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "description": "same as", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7e3d-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "description": "point inside box", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-point-box", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "description": "distance between", "family_slug": "family-spgist-kd_point_ops", "result_type": "float8", "sort_family": "float_ops", "operator_slug": "op-3c2d3e-point-point", "sort_family_slug": "family-btree-float_ops"}], "signature": "spgist/kd_point_ops", "source_oid": "", "description": ["point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002"], "localization": {"status": "complete", "sources": [{"url": "/docs/15/catalog-pg-amop.html", "method": "same-major semantic node", "sha256": "722b907f43f8178f67214192f7587c04c86bbab3759c44150d611dead287836f", "language": "zh", "matched_nodes": ["#CATALOG-PG-AMOP/p[2]/em[1]", "#CATALOG-PG-AMOP/p[2]/em[2]"]}, {"url": "/docs/15/indexes-opclass.html", "method": "same-major semantic node", "sha256": "99e792c28f2215316661a351044aa90cd191477d266005d4849696ce85bb89ed", "language": "zh", "matched_nodes": ["#INDEXES-OPCLASS/p[3]", "#INDEXES-OPCLASS/p[5]", "#INDEXES-OPCLASS/p[6]"]}, {"url": "/docs/15/spgist-builtin-opclasses.html", "method": "same-major semantic node", "sha256": "fec4d5ffbf99dfc130fb9528fd8d6817907c7266b6367f95821e4a40064e2cf2", "language": "zh", "matched_nodes": ["#SPGIST-BUILTIN-OPCLASSES/p[4]", "#SPGIST-BUILTIN-OPCLASSES/p[5]"]}], "language": "zh", "original_text": {"/versions/15/description/0": "SP-GiST operator class for point; member of kd_point_ops.", "/versions/15/facts/0/label": "Object kind", "/versions/15/facts/0/value": "Operator class", "/versions/15/facts/1/label": "Index AM", "/versions/15/facts/2/label": "Input type", "/versions/15/facts/3/label": "Stored key type", "/versions/15/facts/3/value": "Same as input type (catalog zero)", "/versions/15/facts/4/label": "Default class", "/versions/15/facts/4/value": "no", "/versions/15/tables/0/title": "Family operator strategies", "/versions/15/tables/1/title": "Family support functions", "/versions/15/tables/2/title": "Classes in this family", "/versions/15/related/0/label": "SP-GiST Index AM", "/versions/15/related/1/label": "kd_point_ops family", "/versions/15/related/2/label": "point data type", "/versions/15/sections/0/title": "Operator classes and families", "/versions/15/sections/1/title": "Specific manual guidance", "/versions/15/tables/0/rows/0/scope": "Class input pair", "/versions/15/tables/0/rows/1/scope": "Class input pair", "/versions/15/tables/0/rows/2/scope": "Class input pair", "/versions/15/tables/0/rows/3/scope": "Class input pair", "/versions/15/tables/0/rows/4/scope": "Class input pair", "/versions/15/tables/0/rows/5/scope": "Class input pair", "/versions/15/tables/0/rows/6/scope": "Class input pair", "/versions/15/tables/0/rows/7/scope": "Family member", "/versions/15/tables/0/rows/8/scope": "Class input pair", "/versions/15/sections/0/paragraphs/0": "An index definition can specify an operator class for each column of an index.", "/versions/15/sections/0/paragraphs/1": "The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).", "/versions/15/sections/0/paragraphs/2": "There are also some built-in operator classes besides the default ones:", "/versions/15/sections/1/paragraphs/0": "Of the two operator classes for type point , quad_point_ops is the default. kd_point_ops supports the same operators but uses a different index data structure that may offer better performance in some applications.", "/versions/15/sections/1/paragraphs/1": "The quad_point_ops , kd_point_ops and poly_ops operator classes support the <-> ordering operator, which enables the k-nearest neighbor ( k-NN ) search over indexed point or polygon data sets.", "/versions/15/tables/0/rows/0/purpose": "search", "/versions/15/tables/0/rows/1/purpose": "search", "/versions/15/tables/0/rows/2/purpose": "search", "/versions/15/tables/0/rows/3/purpose": "search", "/versions/15/tables/0/rows/4/purpose": "search", "/versions/15/tables/0/rows/5/purpose": "search", "/versions/15/tables/0/rows/6/purpose": "search", "/versions/15/tables/0/rows/7/purpose": "search", "/versions/15/tables/0/rows/8/purpose": "ordering", "/versions/15/tables/2/rows/0/default": "no", "/versions/15/tables/0/columns/0/label": "Operator overload", "/versions/15/tables/0/columns/1/label": "Strategy", "/versions/15/tables/0/columns/2/label": "Purpose", "/versions/15/tables/0/columns/3/label": "Ordering family", "/versions/15/tables/0/columns/4/label": "Membership scope", "/versions/15/tables/0/columns/5/label": "Source description", "/versions/15/tables/1/columns/0/label": "Support number", "/versions/15/tables/1/columns/1/label": "Left type", "/versions/15/tables/1/columns/2/label": "Right type", "/versions/15/tables/1/columns/3/label": "Function signature", "/versions/15/tables/1/columns/4/label": "Result type", "/versions/15/tables/2/columns/0/label": "Class", "/versions/15/tables/2/columns/1/label": "Input type", "/versions/15/tables/2/columns/2/label": "Key type", "/versions/15/tables/2/columns/3/label": "Default", "/versions/15/tables/2/rows/0/key_type": "Same as input type", "/versions/15/tables/0/rows/0/description": "is above", "/versions/15/tables/0/rows/1/description": "deprecated, use |>> instead", "/versions/15/tables/0/rows/2/description": "is left of", "/versions/15/tables/0/rows/3/description": "is right of", "/versions/15/tables/0/rows/4/description": "is below", "/versions/15/tables/0/rows/5/description": "deprecated, use <<| instead", "/versions/15/tables/0/rows/6/description": "same as", "/versions/15/tables/0/rows/7/description": "point inside box", "/versions/15/tables/0/rows/8/description": "distance between"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "4c06c202b12a49ce5a2944de327b65c421b15aa56edbe488b2ef1089be5880ac"}, "comparison_data": {"kind": "class", "classes": [{"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "sort_family": "float_ops"}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "sort_family": ""}], "attributes": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "bool"}]}, "comparison_hash": "d6cfa2963f1bb6f01544eff3ea7b1b19e01c64fd2e27c475edff84345d1476c7", "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool"}]}, "16": {"class": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "facts": [{"label": "\u5bf9\u8c61\u79cd\u7c7b", "value": "\u64cd\u4f5c\u7b26\u7c7b"}, {"label": "\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5", "value": "SP-GiST"}, {"label": "\u8f93\u5165\u7c7b\u578b", "value": "point"}, {"label": "\u5b58\u50a8\u952e\u7c7b\u578b", "value": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c\uff08\u76ee\u5f55\u503c\u4e3a\u96f6\uff09"}, {"label": "\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b", "value": "\u5426"}], "tables": [{"key": "operators", "rows": [{"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7c3e3e-point-point/?v=16", "text": "|>>(point,point)"}, "strategy": "11", "description": "\u4f4d\u4e8e\u4e0a\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e5e-point-point/?v=16", "text": ">^(point,point)"}, "strategy": "30", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 |>>", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c-point-point/?v=16", "text": "<<(point,point)"}, "strategy": "1", "description": "\u4f4d\u4e8e\u5de6\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e3e-point-point/?v=16", "text": ">>(point,point)"}, "strategy": "5", "description": "\u4f4d\u4e8e\u53f3\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c7c-point-point/?v=16", "text": "<<|(point,point)"}, "strategy": "10", "description": "\u4f4d\u4e8e\u4e0b\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c5e-point-point/?v=16", "text": "<^(point,point)"}, "strategy": "29", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 <<|", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7e3d-point-point/?v=16", "text": "~=(point,point)"}, "strategy": "6", "description": "\u76f8\u540c", "sort_family": ""}, {"scope": "\u5bb6\u65cf\u6210\u5458", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c40-point-box/?v=16", "text": "<@(point,box)"}, "strategy": "8", "description": "\u70b9\u4f4d\u4e8e\u77e9\u5f62\u6846\u5185", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u6392\u5e8f", "operator": {"url": "/wiki/operator/op-3c2d3e-point-point/?v=16", "text": "<->(point,point)"}, "strategy": "15", "description": "\u4e24\u8005\u4e4b\u95f4\u7684\u8ddd\u79bb", "sort_family": "float_ops"}], "title": "\u5bb6\u65cf\u4e2d\u7684\u64cd\u4f5c\u7b26\u7b56\u7565", "columns": [{"key": "operator", "label": "\u64cd\u4f5c\u7b26\u91cd\u8f7d"}, {"key": "strategy", "label": "\u7b56\u7565"}, {"key": "purpose", "label": "\u7528\u9014"}, {"key": "sort_family", "label": "\u6392\u5e8f\u5bb6\u65cf"}, {"key": "scope", "label": "\u6210\u5458\u8303\u56f4"}, {"key": "description", "label": "\u6e90\u7801\u8bf4\u660e"}]}, {"key": "support-functions", "rows": [{"number": "1", "function": "spg_kd_config(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=16", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=16", "text": "point"}, "result_type": "void"}, {"number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=16", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=16", "text": "point"}, "result_type": "void"}, {"number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=16", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=16", "text": "point"}, "result_type": "void"}, {"number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=16", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=16", "text": "point"}, "result_type": "void"}, {"number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=16", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=16", "text": "point"}, "result_type": "bool"}], "title": "\u5bb6\u65cf\u652f\u6301\u51fd\u6570", "columns": [{"key": "number", "label": "\u652f\u6301\u51fd\u6570\u7f16\u53f7"}, {"key": "left_type", "label": "\u5de6\u4fa7\u7c7b\u578b"}, {"key": "right_type", "label": "\u53f3\u4fa7\u7c7b\u578b"}, {"key": "function", "label": "\u51fd\u6570\u7b7e\u540d"}, {"key": "result_type", "label": "\u8fd4\u56de\u7c7b\u578b"}]}, {"key": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-spgist-kd_point_ops/?v=16", "text": "kd_point_ops"}, "default": "\u5426", "key_type": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c", "input_type": {"url": "/wiki/type/point/?v=16", "text": "point"}}], "title": "\u672c\u5bb6\u65cf\u7684\u64cd\u4f5c\u7b26\u7c7b", "columns": [{"key": "class", "label": "\u64cd\u4f5c\u7b26\u7c7b"}, {"key": "input_type", "label": "\u8f93\u5165\u7c7b\u578b"}, {"key": "key_type", "label": "\u952e\u7c7b\u578b"}, {"key": "default", "label": "\u9ed8\u8ba4\u503c"}]}], "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "classes": [{"name": "kd_point_ops", "slug": "class-spgist-kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point", "source_oid": "", "family_slug": "family-spgist-kd_point_ops"}], "related": [{"url": "/wiki/indexam/spgist/?v=16", "label": "SP-GiST \u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5"}, {"url": "/wiki/opclass/family-spgist-kd_point_ops/?v=16", "label": "kd_point_ops \u5bb6\u65cf"}, {"url": "/wiki/type/point/?v=16", "label": "point \u6570\u636e\u7c7b\u578b"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "16.15", "major": "16", "channel": "stable", "revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed", "source_sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed", "manual_fingerprint": "846fb006e9d590387203c1c65f671240bc5c30604c4e3084cf572817aacc19d0", "catalog_fingerprint": "70797d889dd8aeed77ae81092f99ab380e1109b54b0b7ca6fbf400e0a2111a70"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, {"url": "https://pg.center/docs/16/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 16 English manual: indexes-opclass.html", "sha256": "a524c924c56d14615e7ea68aaaddd7c62abf7d153a0e291c191e0f4e962ffbae", "language": "en", "original_url": "/docs/16/indexes-opclass.html"}, {"url": "https://pg.center/docs/16/catalog-pg-opclass.html", "path": "catalog-pg-opclass.html", "label": "PostgreSQL 16 English manual: catalog-pg-opclass.html", "sha256": "f075996844e2b6da739db4c2ed35fc2b0f288cd51d3f1f04baac0daa0e608c03", "language": "en", "original_url": "/docs/16/catalog-pg-opclass.html"}, {"url": "https://pg.center/docs/16/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 16 English manual: catalog-pg-amop.html", "sha256": "f580ac4a34d5f9d567834684e0c41b7df32a952e20a2fc11a9ce0964c2df7e9a", "language": "en", "original_url": "/docs/16/catalog-pg-amop.html"}, {"url": "https://pg.center/docs/16/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 16 English manual: catalog-pg-amproc.html", "sha256": "ce78e17af3e627c9f4a1b517d77b8eb2e071ba2e963f8b196bf9535ca98c388a", "language": "en", "original_url": "/docs/16/catalog-pg-amproc.html"}, {"url": "https://pg.center/docs/16/spgist-builtin-opclasses.html", "path": "spgist-builtin-opclasses.html", "label": "PostgreSQL 16 English manual: spgist-builtin-opclasses.html", "sha256": "cd59776cb7f959a622b4f47d617b4e24b76ab3ecba8b3095138f124f5d16215f", "language": "en", "original_url": "/docs/16/spgist-builtin-opclasses.html"}], "sections": [{"title": "\u64cd\u4f5c\u7b26\u7c7b\u4e0e\u5bb6\u65cf", "paragraphs": ["\u4e00\u4e2a\u7d22\u5f15\u5b9a\u4e49\u53ef\u4ee5\u4e3a\u7d22\u5f15\u7684\u6bcf\u4e00\u5217\u6307\u5b9a\u4e00\u4e2a \u64cd\u4f5c\u7b26\u7c7b \u3002", "\u64cd\u4f5c\u7b26\u7c7b\u6807\u8bc6\u8be5\u7d22\u5f15\u5728\u8be5\u5217\u4e0a\u8981\u4f7f\u7528\u54ea\u4e9b\u64cd\u4f5c\u7b26\u3002\u4f8b\u5982\uff0c\u7c7b\u578b int4 \u4e0a\u7684\u4e00\u4e2a B-\u6811\u7d22\u5f15\u4f1a\u4f7f\u7528 int4_ops \u7c7b\uff1b\u8fd9\u4e2a\u64cd\u4f5c\u7b26\u7c7b\u5305\u542b\u5bf9 int4 \u503c\u8fdb\u884c\u6bd4\u8f83\u6240\u9700\u7684\u51fd\u6570\u3002\u5b9e\u8df5\u4e2d\uff0c\u5217\u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u901a\u5e38\u5df2\u7ecf\u8db3\u591f\u3002\u4e4b\u6240\u4ee5\u5b58\u5728\u64cd\u4f5c\u7b26\u7c7b\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5bf9\u67d0\u4e9b\u6570\u636e\u7c7b\u578b\u6765\u8bf4\uff0c\u53ef\u80fd\u5b58\u5728\u591a\u79cd\u6709\u610f\u4e49\u7684\u7d22\u5f15\u884c\u4e3a\u3002\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u80fd\u5e0c\u671b\u6309\u7edd\u5bf9\u503c\u6392\u5e8f\u4e00\u79cd\u590d\u6570\u6570\u636e\u7c7b\u578b\uff0c\u4e5f\u53ef\u80fd\u5e0c\u671b\u6309\u5b9e\u90e8\u6392\u5e8f\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e3a\u8be5\u6570\u636e\u7c7b\u578b\u5b9a\u4e49\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c\u5e76\u5728\u521b\u5efa\u7d22\u5f15\u65f6\u9009\u62e9\u5408\u9002\u7684\u90a3\u4e2a\u6765\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u64cd\u4f5c\u7b26\u7c7b\u51b3\u5b9a\u4e86\u57fa\u7840\u6392\u5e8f\u987a\u5e8f\uff08\u4e4b\u540e\u8fd8\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u6392\u5e8f\u9009\u9879 COLLATE \u3001 ASC / DESC \u548c/\u6216 NULLS FIRST / NULLS LAST \u6765\u4fee\u6539\uff09\u3002", "\u9664\u4e86\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u4e4b\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5185\u7f6e\u64cd\u4f5c\u7b26\u7c7b\uff1a"]}, {"title": "\u4e13\u9898\u624b\u518c\u8bf4\u660e", "paragraphs": ["\u5bf9\u4e8e\u7c7b\u578b point \u7684\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c quad_point_ops \u662f\u9ed8\u8ba4\u9009\u9879\u3002 kd_point_ops \u652f\u6301\u76f8\u540c\u7684\u64cd\u4f5c\u7b26\uff0c\u4f46\u4f7f\u7528\u4e0d\u540c\u7684\u7d22\u5f15\u6570\u636e\u7ed3\u6784\uff0c\u5728\u67d0\u4e9b\u5e94\u7528\u4e2d\u53ef\u80fd\u63d0\u4f9b\u66f4\u597d\u7684\u6027\u80fd\u3002", "quad_point_ops \u3001 kd_point_ops \u548c poly_ops \u64cd\u4f5c\u7b26\u7c7b\u652f\u6301 <-> \u6392\u5e8f\u64cd\u4f5c\u7b26\uff0c\u8fd9\u4f7f\u5f97\u53ef\u4ee5\u5728\u5df2\u5efa\u7acb\u7d22\u5f15\u7684\u70b9\u6216\u591a\u8fb9\u5f62\u6570\u636e\u96c6\u4e0a\u6267\u884c k \u6700\u8fd1\u90bb\uff08 k-NN \uff09\u641c\u7d22\u3002"]}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "description": "is above", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7c3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "description": "deprecated, use |>> instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "description": "is left of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "description": "is right of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "description": "is below", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c7c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "description": "deprecated, use <<| instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "description": "same as", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7e3d-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "description": "point inside box", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-point-box", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "description": "distance between", "family_slug": "family-spgist-kd_point_ops", "result_type": "float8", "sort_family": "float_ops", "operator_slug": "op-3c2d3e-point-point", "sort_family_slug": "family-btree-float_ops"}], "signature": "spgist/kd_point_ops", "source_oid": "", "description": ["point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002"], "localization": {"status": "complete", "sources": [{"url": "/docs/16/catalog-pg-amop.html", "method": "same-major semantic node", "sha256": "704b1a6817cd451566b69b08f4210b2fb192934810322e22cb9a2980f7d93af4", "language": "zh", "matched_nodes": ["#CATALOG-PG-AMOP/p[2]/em[1]", "#CATALOG-PG-AMOP/p[2]/em[2]"]}, {"url": "/docs/16/indexes-opclass.html", "method": "same-major semantic node", "sha256": "da59bf9cb7d8a9ec0aeab1f5d3593429eec79ce6a1715eb47434832287159c3c", "language": "zh", "matched_nodes": ["#INDEXES-OPCLASS/p[3]", "#INDEXES-OPCLASS/p[5]", "#INDEXES-OPCLASS/p[6]"]}, {"url": "/docs/16/spgist-builtin-opclasses.html", "method": "same-major semantic node", "sha256": "fe0400fef7fbca2a30f20de9e329f6dbdcce2171676d554a6a3d3b50905b2719", "language": "zh", "matched_nodes": ["#SPGIST-BUILTIN-OPCLASSES/p[4]", "#SPGIST-BUILTIN-OPCLASSES/p[5]"]}], "language": "zh", "original_text": {"/versions/16/description/0": "SP-GiST operator class for point; member of kd_point_ops.", "/versions/16/facts/0/label": "Object kind", "/versions/16/facts/0/value": "Operator class", "/versions/16/facts/1/label": "Index AM", "/versions/16/facts/2/label": "Input type", "/versions/16/facts/3/label": "Stored key type", "/versions/16/facts/3/value": "Same as input type (catalog zero)", "/versions/16/facts/4/label": "Default class", "/versions/16/facts/4/value": "no", "/versions/16/tables/0/title": "Family operator strategies", "/versions/16/tables/1/title": "Family support functions", "/versions/16/tables/2/title": "Classes in this family", "/versions/16/related/0/label": "SP-GiST Index AM", "/versions/16/related/1/label": "kd_point_ops family", "/versions/16/related/2/label": "point data type", "/versions/16/sections/0/title": "Operator classes and families", "/versions/16/sections/1/title": "Specific manual guidance", "/versions/16/tables/0/rows/0/scope": "Class input pair", "/versions/16/tables/0/rows/1/scope": "Class input pair", "/versions/16/tables/0/rows/2/scope": "Class input pair", "/versions/16/tables/0/rows/3/scope": "Class input pair", "/versions/16/tables/0/rows/4/scope": "Class input pair", "/versions/16/tables/0/rows/5/scope": "Class input pair", "/versions/16/tables/0/rows/6/scope": "Class input pair", "/versions/16/tables/0/rows/7/scope": "Family member", "/versions/16/tables/0/rows/8/scope": "Class input pair", "/versions/16/sections/0/paragraphs/0": "An index definition can specify an operator class for each column of an index.", "/versions/16/sections/0/paragraphs/1": "The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).", "/versions/16/sections/0/paragraphs/2": "There are also some built-in operator classes besides the default ones:", "/versions/16/sections/1/paragraphs/0": "Of the two operator classes for type point , quad_point_ops is the default. kd_point_ops supports the same operators but uses a different index data structure that may offer better performance in some applications.", "/versions/16/sections/1/paragraphs/1": "The quad_point_ops , kd_point_ops and poly_ops operator classes support the <-> ordering operator, which enables the k-nearest neighbor ( k-NN ) search over indexed point or polygon data sets.", "/versions/16/tables/0/rows/0/purpose": "search", "/versions/16/tables/0/rows/1/purpose": "search", "/versions/16/tables/0/rows/2/purpose": "search", "/versions/16/tables/0/rows/3/purpose": "search", "/versions/16/tables/0/rows/4/purpose": "search", "/versions/16/tables/0/rows/5/purpose": "search", "/versions/16/tables/0/rows/6/purpose": "search", "/versions/16/tables/0/rows/7/purpose": "search", "/versions/16/tables/0/rows/8/purpose": "ordering", "/versions/16/tables/2/rows/0/default": "no", "/versions/16/tables/0/columns/0/label": "Operator overload", "/versions/16/tables/0/columns/1/label": "Strategy", "/versions/16/tables/0/columns/2/label": "Purpose", "/versions/16/tables/0/columns/3/label": "Ordering family", "/versions/16/tables/0/columns/4/label": "Membership scope", "/versions/16/tables/0/columns/5/label": "Source description", "/versions/16/tables/1/columns/0/label": "Support number", "/versions/16/tables/1/columns/1/label": "Left type", "/versions/16/tables/1/columns/2/label": "Right type", "/versions/16/tables/1/columns/3/label": "Function signature", "/versions/16/tables/1/columns/4/label": "Result type", "/versions/16/tables/2/columns/0/label": "Class", "/versions/16/tables/2/columns/1/label": "Input type", "/versions/16/tables/2/columns/2/label": "Key type", "/versions/16/tables/2/columns/3/label": "Default", "/versions/16/tables/2/rows/0/key_type": "Same as input type", "/versions/16/tables/0/rows/0/description": "is above", "/versions/16/tables/0/rows/1/description": "deprecated, use |>> instead", "/versions/16/tables/0/rows/2/description": "is left of", "/versions/16/tables/0/rows/3/description": "is right of", "/versions/16/tables/0/rows/4/description": "is below", "/versions/16/tables/0/rows/5/description": "deprecated, use <<| instead", "/versions/16/tables/0/rows/6/description": "same as", "/versions/16/tables/0/rows/7/description": "point inside box", "/versions/16/tables/0/rows/8/description": "distance between"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "5fd3f1b35b38241bab036a3f31cece925133c443fd12936e5d17628ea29ffbf9"}, "comparison_data": {"kind": "class", "classes": [{"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "sort_family": "float_ops"}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "sort_family": ""}], "attributes": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "bool"}]}, "comparison_hash": "d6cfa2963f1bb6f01544eff3ea7b1b19e01c64fd2e27c475edff84345d1476c7", "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool"}]}, "17": {"class": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "facts": [{"label": "\u5bf9\u8c61\u79cd\u7c7b", "value": "\u64cd\u4f5c\u7b26\u7c7b"}, {"label": "\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5", "value": "SP-GiST"}, {"label": "\u8f93\u5165\u7c7b\u578b", "value": "point"}, {"label": "\u5b58\u50a8\u952e\u7c7b\u578b", "value": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c\uff08\u76ee\u5f55\u503c\u4e3a\u96f6\uff09"}, {"label": "\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b", "value": "\u5426"}], "tables": [{"key": "operators", "rows": [{"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7c3e3e-point-point/?v=17", "text": "|>>(point,point)"}, "strategy": "11", "description": "\u4f4d\u4e8e\u4e0a\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e5e-point-point/?v=17", "text": ">^(point,point)"}, "strategy": "30", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 |>>", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c-point-point/?v=17", "text": "<<(point,point)"}, "strategy": "1", "description": "\u4f4d\u4e8e\u5de6\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e3e-point-point/?v=17", "text": ">>(point,point)"}, "strategy": "5", "description": "\u4f4d\u4e8e\u53f3\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c7c-point-point/?v=17", "text": "<<|(point,point)"}, "strategy": "10", "description": "\u4f4d\u4e8e\u4e0b\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c5e-point-point/?v=17", "text": "<^(point,point)"}, "strategy": "29", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 <<|", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7e3d-point-point/?v=17", "text": "~=(point,point)"}, "strategy": "6", "description": "\u76f8\u540c", "sort_family": ""}, {"scope": "\u5bb6\u65cf\u6210\u5458", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c40-point-box/?v=17", "text": "<@(point,box)"}, "strategy": "8", "description": "\u70b9\u4f4d\u4e8e\u77e9\u5f62\u6846\u5185", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u6392\u5e8f", "operator": {"url": "/wiki/operator/op-3c2d3e-point-point/?v=17", "text": "<->(point,point)"}, "strategy": "15", "description": "\u4e24\u8005\u4e4b\u95f4\u7684\u8ddd\u79bb", "sort_family": "float_ops"}], "title": "\u5bb6\u65cf\u4e2d\u7684\u64cd\u4f5c\u7b26\u7b56\u7565", "columns": [{"key": "operator", "label": "\u64cd\u4f5c\u7b26\u91cd\u8f7d"}, {"key": "strategy", "label": "\u7b56\u7565"}, {"key": "purpose", "label": "\u7528\u9014"}, {"key": "sort_family", "label": "\u6392\u5e8f\u5bb6\u65cf"}, {"key": "scope", "label": "\u6210\u5458\u8303\u56f4"}, {"key": "description", "label": "\u6e90\u7801\u8bf4\u660e"}]}, {"key": "support-functions", "rows": [{"number": "1", "function": "spg_kd_config(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=17", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=17", "text": "point"}, "result_type": "void"}, {"number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=17", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=17", "text": "point"}, "result_type": "void"}, {"number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=17", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=17", "text": "point"}, "result_type": "void"}, {"number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=17", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=17", "text": "point"}, "result_type": "void"}, {"number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=17", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=17", "text": "point"}, "result_type": "bool"}], "title": "\u5bb6\u65cf\u652f\u6301\u51fd\u6570", "columns": [{"key": "number", "label": "\u652f\u6301\u51fd\u6570\u7f16\u53f7"}, {"key": "left_type", "label": "\u5de6\u4fa7\u7c7b\u578b"}, {"key": "right_type", "label": "\u53f3\u4fa7\u7c7b\u578b"}, {"key": "function", "label": "\u51fd\u6570\u7b7e\u540d"}, {"key": "result_type", "label": "\u8fd4\u56de\u7c7b\u578b"}]}, {"key": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-spgist-kd_point_ops/?v=17", "text": "kd_point_ops"}, "default": "\u5426", "key_type": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c", "input_type": {"url": "/wiki/type/point/?v=17", "text": "point"}}], "title": "\u672c\u5bb6\u65cf\u7684\u64cd\u4f5c\u7b26\u7c7b", "columns": [{"key": "class", "label": "\u64cd\u4f5c\u7b26\u7c7b"}, {"key": "input_type", "label": "\u8f93\u5165\u7c7b\u578b"}, {"key": "key_type", "label": "\u952e\u7c7b\u578b"}, {"key": "default", "label": "\u9ed8\u8ba4\u503c"}]}], "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "classes": [{"name": "kd_point_ops", "slug": "class-spgist-kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point", "source_oid": "", "family_slug": "family-spgist-kd_point_ops"}], "related": [{"url": "/wiki/indexam/spgist/?v=17", "label": "SP-GiST \u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5"}, {"url": "/wiki/opclass/family-spgist-kd_point_ops/?v=17", "label": "kd_point_ops \u5bb6\u65cf"}, {"url": "/wiki/type/point/?v=17", "label": "point \u6570\u636e\u7c7b\u578b"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "17.11", "major": "17", "channel": "stable", "revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979", "source_sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979", "manual_fingerprint": "b55870f8e80e1114a92ac7bfc97f4a6fa0dee8e75935895252bb6e5b866cf187", "catalog_fingerprint": "e888e3474202df1c60a8e7b6bf9f2d83b3866a52d119521659b7a82787d3829d"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, {"url": "https://pg.center/docs/17/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 17 English manual: indexes-opclass.html", "sha256": "dcdeb2d461b79e5c679d29f2a6d3ad038c788ba5a6d094e63d17353352db3ef2", "language": "en", "original_url": "/docs/17/indexes-opclass.html"}, {"url": "https://pg.center/docs/17/catalog-pg-opclass.html", "path": "catalog-pg-opclass.html", "label": "PostgreSQL 17 English manual: catalog-pg-opclass.html", "sha256": "2daafcf4d1d6ae524abfc92ef8799237b82d390fc72622f7d59c142ef4bdc0bc", "language": "en", "original_url": "/docs/17/catalog-pg-opclass.html"}, {"url": "https://pg.center/docs/17/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 17 English manual: catalog-pg-amop.html", "sha256": "19b2fb110b348860f7fbcb6e0e0544e341f5645113c23f50920a54434d432359", "language": "en", "original_url": "/docs/17/catalog-pg-amop.html"}, {"url": "https://pg.center/docs/17/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 17 English manual: catalog-pg-amproc.html", "sha256": "c1e9a6c78cb61e434eba6e22547c50a677d0c414049fd515263bec770b16ff55", "language": "en", "original_url": "/docs/17/catalog-pg-amproc.html"}], "sections": [{"title": "\u64cd\u4f5c\u7b26\u7c7b\u4e0e\u5bb6\u65cf", "paragraphs": ["\u4e00\u4e2a\u7d22\u5f15\u5b9a\u4e49\u53ef\u4ee5\u4e3a\u7d22\u5f15\u7684\u6bcf\u4e00\u5217\u6307\u5b9a\u4e00\u4e2a \u64cd\u4f5c\u7b26\u7c7b \u3002", "\u64cd\u4f5c\u7b26\u7c7b\u6807\u8bc6\u8be5\u7d22\u5f15\u5728\u8be5\u5217\u4e0a\u8981\u4f7f\u7528\u54ea\u4e9b\u64cd\u4f5c\u7b26\u3002\u4f8b\u5982\uff0c\u7c7b\u578b int4 \u4e0a\u7684\u4e00\u4e2a B-\u6811\u7d22\u5f15\u4f1a\u4f7f\u7528 int4_ops \u7c7b\uff1b\u8fd9\u4e2a\u64cd\u4f5c\u7b26\u7c7b\u5305\u542b\u5bf9 int4 \u503c\u8fdb\u884c\u6bd4\u8f83\u6240\u9700\u7684\u51fd\u6570\u3002\u5b9e\u8df5\u4e2d\uff0c\u5217\u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u901a\u5e38\u5df2\u7ecf\u8db3\u591f\u3002\u4e4b\u6240\u4ee5\u5b58\u5728\u64cd\u4f5c\u7b26\u7c7b\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5bf9\u67d0\u4e9b\u6570\u636e\u7c7b\u578b\u6765\u8bf4\uff0c\u53ef\u80fd\u5b58\u5728\u591a\u79cd\u6709\u610f\u4e49\u7684\u7d22\u5f15\u884c\u4e3a\u3002\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u80fd\u5e0c\u671b\u6309\u7edd\u5bf9\u503c\u6392\u5e8f\u4e00\u79cd\u590d\u6570\u6570\u636e\u7c7b\u578b\uff0c\u4e5f\u53ef\u80fd\u5e0c\u671b\u6309\u5b9e\u90e8\u6392\u5e8f\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e3a\u8be5\u6570\u636e\u7c7b\u578b\u5b9a\u4e49\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c\u5e76\u5728\u521b\u5efa\u7d22\u5f15\u65f6\u9009\u62e9\u5408\u9002\u7684\u90a3\u4e2a\u6765\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u64cd\u4f5c\u7b26\u7c7b\u51b3\u5b9a\u4e86\u57fa\u7840\u6392\u5e8f\u987a\u5e8f\uff08\u4e4b\u540e\u8fd8\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u6392\u5e8f\u9009\u9879 COLLATE \u3001 ASC / DESC \u548c/\u6216 NULLS FIRST / NULLS LAST \u6765\u4fee\u6539\uff09\u3002", "\u9664\u4e86\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u4e4b\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5185\u7f6e\u64cd\u4f5c\u7b26\u7c7b\uff1a"]}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "description": "is above", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7c3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "description": "deprecated, use |>> instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "description": "is left of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "description": "is right of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "description": "is below", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c7c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "description": "deprecated, use <<| instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "description": "same as", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7e3d-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "description": "point inside box", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-point-box", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "description": "distance between", "family_slug": "family-spgist-kd_point_ops", "result_type": "float8", "sort_family": "float_ops", "operator_slug": "op-3c2d3e-point-point", "sort_family_slug": "family-btree-float_ops"}], "signature": "spgist/kd_point_ops", "source_oid": "", "description": ["point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002"], "localization": {"status": "complete", "sources": [{"url": "/docs/17/catalog-pg-amop.html", "method": "same-major semantic node", "sha256": "79658772dd07ff10c4a4a472853e5a9bcba832796f5f9d2c0c77a87da769e5f6", "language": "zh", "matched_nodes": ["#CATALOG-PG-AMOP/p[2]/em[1]", "#CATALOG-PG-AMOP/p[2]/em[2]"]}, {"url": "/docs/17/indexes-opclass.html", "method": "same-major semantic node", "sha256": "66b33ea1fd240b6fae08ded914d718d50dfeba9d5be16dac835d0472b9cc9e4a", "language": "zh", "matched_nodes": ["#INDEXES-OPCLASS/p[3]", "#INDEXES-OPCLASS/p[5]", "#INDEXES-OPCLASS/p[6]"]}], "language": "zh", "original_text": {"/versions/17/description/0": "SP-GiST operator class for point; member of kd_point_ops.", "/versions/17/facts/0/label": "Object kind", "/versions/17/facts/0/value": "Operator class", "/versions/17/facts/1/label": "Index AM", "/versions/17/facts/2/label": "Input type", "/versions/17/facts/3/label": "Stored key type", "/versions/17/facts/3/value": "Same as input type (catalog zero)", "/versions/17/facts/4/label": "Default class", "/versions/17/facts/4/value": "no", "/versions/17/tables/0/title": "Family operator strategies", "/versions/17/tables/1/title": "Family support functions", "/versions/17/tables/2/title": "Classes in this family", "/versions/17/related/0/label": "SP-GiST Index AM", "/versions/17/related/1/label": "kd_point_ops family", "/versions/17/related/2/label": "point data type", "/versions/17/sections/0/title": "Operator classes and families", "/versions/17/tables/0/rows/0/scope": "Class input pair", "/versions/17/tables/0/rows/1/scope": "Class input pair", "/versions/17/tables/0/rows/2/scope": "Class input pair", "/versions/17/tables/0/rows/3/scope": "Class input pair", "/versions/17/tables/0/rows/4/scope": "Class input pair", "/versions/17/tables/0/rows/5/scope": "Class input pair", "/versions/17/tables/0/rows/6/scope": "Class input pair", "/versions/17/tables/0/rows/7/scope": "Family member", "/versions/17/tables/0/rows/8/scope": "Class input pair", "/versions/17/sections/0/paragraphs/0": "An index definition can specify an operator class for each column of an index.", "/versions/17/sections/0/paragraphs/1": "The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).", "/versions/17/sections/0/paragraphs/2": "There are also some built-in operator classes besides the default ones:", "/versions/17/tables/0/rows/0/purpose": "search", "/versions/17/tables/0/rows/1/purpose": "search", "/versions/17/tables/0/rows/2/purpose": "search", "/versions/17/tables/0/rows/3/purpose": "search", "/versions/17/tables/0/rows/4/purpose": "search", "/versions/17/tables/0/rows/5/purpose": "search", "/versions/17/tables/0/rows/6/purpose": "search", "/versions/17/tables/0/rows/7/purpose": "search", "/versions/17/tables/0/rows/8/purpose": "ordering", "/versions/17/tables/2/rows/0/default": "no", "/versions/17/tables/0/columns/0/label": "Operator overload", "/versions/17/tables/0/columns/1/label": "Strategy", "/versions/17/tables/0/columns/2/label": "Purpose", "/versions/17/tables/0/columns/3/label": "Ordering family", "/versions/17/tables/0/columns/4/label": "Membership scope", "/versions/17/tables/0/columns/5/label": "Source description", "/versions/17/tables/1/columns/0/label": "Support number", "/versions/17/tables/1/columns/1/label": "Left type", "/versions/17/tables/1/columns/2/label": "Right type", "/versions/17/tables/1/columns/3/label": "Function signature", "/versions/17/tables/1/columns/4/label": "Result type", "/versions/17/tables/2/columns/0/label": "Class", "/versions/17/tables/2/columns/1/label": "Input type", "/versions/17/tables/2/columns/2/label": "Key type", "/versions/17/tables/2/columns/3/label": "Default", "/versions/17/tables/2/rows/0/key_type": "Same as input type", "/versions/17/tables/0/rows/0/description": "is above", "/versions/17/tables/0/rows/1/description": "deprecated, use |>> instead", "/versions/17/tables/0/rows/2/description": "is left of", "/versions/17/tables/0/rows/3/description": "is right of", "/versions/17/tables/0/rows/4/description": "is below", "/versions/17/tables/0/rows/5/description": "deprecated, use <<| instead", "/versions/17/tables/0/rows/6/description": "same as", "/versions/17/tables/0/rows/7/description": "point inside box", "/versions/17/tables/0/rows/8/description": "distance between"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "bfe9cca3072d0b06e50974b169126ceecde89c7580eba517e1076b90480135c4"}, "comparison_data": {"kind": "class", "classes": [{"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "sort_family": "float_ops"}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "sort_family": ""}], "attributes": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "bool"}]}, "comparison_hash": "d6cfa2963f1bb6f01544eff3ea7b1b19e01c64fd2e27c475edff84345d1476c7", "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool"}]}, "18": {"class": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "facts": [{"label": "\u5bf9\u8c61\u79cd\u7c7b", "value": "\u64cd\u4f5c\u7b26\u7c7b"}, {"label": "\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5", "value": "SP-GiST"}, {"label": "\u8f93\u5165\u7c7b\u578b", "value": "point"}, {"label": "\u5b58\u50a8\u952e\u7c7b\u578b", "value": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c\uff08\u76ee\u5f55\u503c\u4e3a\u96f6\uff09"}, {"label": "\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b", "value": "\u5426"}], "tables": [{"key": "operators", "rows": [{"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7c3e3e-point-point/?v=18", "text": "|>>(point,point)"}, "strategy": "11", "description": "\u4f4d\u4e8e\u4e0a\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e5e-point-point/?v=18", "text": ">^(point,point)"}, "strategy": "30", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 |>>", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c-point-point/?v=18", "text": "<<(point,point)"}, "strategy": "1", "description": "\u4f4d\u4e8e\u5de6\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e3e-point-point/?v=18", "text": ">>(point,point)"}, "strategy": "5", "description": "\u4f4d\u4e8e\u53f3\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c7c-point-point/?v=18", "text": "<<|(point,point)"}, "strategy": "10", "description": "\u4f4d\u4e8e\u4e0b\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c5e-point-point/?v=18", "text": "<^(point,point)"}, "strategy": "29", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 <<|", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7e3d-point-point/?v=18", "text": "~=(point,point)"}, "strategy": "6", "description": "\u76f8\u540c", "sort_family": ""}, {"scope": "\u5bb6\u65cf\u6210\u5458", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c40-point-box/?v=18", "text": "<@(point,box)"}, "strategy": "8", "description": "\u70b9\u4f4d\u4e8e\u77e9\u5f62\u6846\u5185", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u6392\u5e8f", "operator": {"url": "/wiki/operator/op-3c2d3e-point-point/?v=18", "text": "<->(point,point)"}, "strategy": "15", "description": "\u4e24\u8005\u4e4b\u95f4\u7684\u8ddd\u79bb", "sort_family": "float_ops"}], "title": "\u5bb6\u65cf\u4e2d\u7684\u64cd\u4f5c\u7b26\u7b56\u7565", "columns": [{"key": "operator", "label": "\u64cd\u4f5c\u7b26\u91cd\u8f7d"}, {"key": "strategy", "label": "\u7b56\u7565"}, {"key": "purpose", "label": "\u7528\u9014"}, {"key": "sort_family", "label": "\u6392\u5e8f\u5bb6\u65cf"}, {"key": "scope", "label": "\u6210\u5458\u8303\u56f4"}, {"key": "description", "label": "\u6e90\u7801\u8bf4\u660e"}]}, {"key": "support-functions", "rows": [{"number": "1", "function": "spg_kd_config(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "result_type": "void"}, {"number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "result_type": "void"}, {"number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "result_type": "void"}, {"number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "result_type": "void"}, {"number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "result_type": "bool"}], "title": "\u5bb6\u65cf\u652f\u6301\u51fd\u6570", "columns": [{"key": "number", "label": "\u652f\u6301\u51fd\u6570\u7f16\u53f7"}, {"key": "left_type", "label": "\u5de6\u4fa7\u7c7b\u578b"}, {"key": "right_type", "label": "\u53f3\u4fa7\u7c7b\u578b"}, {"key": "function", "label": "\u51fd\u6570\u7b7e\u540d"}, {"key": "result_type", "label": "\u8fd4\u56de\u7c7b\u578b"}]}, {"key": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-spgist-kd_point_ops/?v=18", "text": "kd_point_ops"}, "default": "\u5426", "key_type": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c", "input_type": {"url": "/wiki/type/point/?v=18", "text": "point"}}], "title": "\u672c\u5bb6\u65cf\u7684\u64cd\u4f5c\u7b26\u7c7b", "columns": [{"key": "class", "label": "\u64cd\u4f5c\u7b26\u7c7b"}, {"key": "input_type", "label": "\u8f93\u5165\u7c7b\u578b"}, {"key": "key_type", "label": "\u952e\u7c7b\u578b"}, {"key": "default", "label": "\u9ed8\u8ba4\u503c"}]}], "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "classes": [{"name": "kd_point_ops", "slug": "class-spgist-kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point", "source_oid": "", "family_slug": "family-spgist-kd_point_ops"}], "related": [{"url": "/wiki/indexam/spgist/?v=18", "label": "SP-GiST \u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5"}, {"url": "/wiki/opclass/family-spgist-kd_point_ops/?v=18", "label": "kd_point_ops \u5bb6\u65cf"}, {"url": "/wiki/type/point/?v=18", "label": "point \u6570\u636e\u7c7b\u578b"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "manual_fingerprint": "fefce9e478eb2afe5e17e869492bbedc67dce23d317f0a5257240113d6496ebc", "catalog_fingerprint": "deec62e0f0c649d9d0d058ddd0b16bf41afffd569c3fd73949ff0971ce5cabd6"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, {"url": "https://pg.center/docs/18/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 18 English manual: indexes-opclass.html", "sha256": "07de06abf3a2aff2a891a2789def434d9b76705e54d45ca5338dc13451ae2962", "language": "en", "original_url": "/docs/18/indexes-opclass.html"}, {"url": "https://pg.center/docs/18/catalog-pg-opclass.html", "path": "catalog-pg-opclass.html", "label": "PostgreSQL 18 English manual: catalog-pg-opclass.html", "sha256": "6f131a502f81b813d447e746fc39ee28e5bdfb3ce8e8baea36a71ad0fde78c40", "language": "en", "original_url": "/docs/18/catalog-pg-opclass.html"}, {"url": "https://pg.center/docs/18/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 18 English manual: catalog-pg-amop.html", "sha256": "e65b90ee78eaf4b4da97ce5b08b972cee2e2660b882ec107be22eca47201f7d1", "language": "en", "original_url": "/docs/18/catalog-pg-amop.html"}, {"url": "https://pg.center/docs/18/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 18 English manual: catalog-pg-amproc.html", "sha256": "0a09afbde0ba8da9899bf770b86d8301bee116057b16ebe7db0e4a7fca2e91c6", "language": "en", "original_url": "/docs/18/catalog-pg-amproc.html"}], "sections": [{"title": "\u64cd\u4f5c\u7b26\u7c7b\u4e0e\u5bb6\u65cf", "paragraphs": ["\u4e00\u4e2a\u7d22\u5f15\u5b9a\u4e49\u53ef\u4ee5\u4e3a\u7d22\u5f15\u7684\u6bcf\u4e00\u5217\u6307\u5b9a\u4e00\u4e2a \u64cd\u4f5c\u7b26\u7c7b \u3002", "\u64cd\u4f5c\u7b26\u7c7b\u6807\u8bc6\u8be5\u7d22\u5f15\u5728\u8be5\u5217\u4e0a\u8981\u4f7f\u7528\u54ea\u4e9b\u64cd\u4f5c\u7b26\u3002\u4f8b\u5982\uff0c\u7c7b\u578b int4 \u4e0a\u7684\u4e00\u4e2a B-\u6811\u7d22\u5f15\u4f1a\u4f7f\u7528 int4_ops \u7c7b\uff1b\u8fd9\u4e2a\u64cd\u4f5c\u7b26\u7c7b\u5305\u542b\u5bf9 int4 \u503c\u8fdb\u884c\u6bd4\u8f83\u6240\u9700\u7684\u51fd\u6570\u3002\u5b9e\u8df5\u4e2d\uff0c\u5217\u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u901a\u5e38\u5df2\u7ecf\u8db3\u591f\u3002\u4e4b\u6240\u4ee5\u5b58\u5728\u64cd\u4f5c\u7b26\u7c7b\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5bf9\u67d0\u4e9b\u6570\u636e\u7c7b\u578b\u6765\u8bf4\uff0c\u53ef\u80fd\u5b58\u5728\u591a\u79cd\u6709\u610f\u4e49\u7684\u7d22\u5f15\u884c\u4e3a\u3002\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u80fd\u5e0c\u671b\u6309\u7edd\u5bf9\u503c\u6392\u5e8f\u4e00\u79cd\u590d\u6570\u6570\u636e\u7c7b\u578b\uff0c\u4e5f\u53ef\u80fd\u5e0c\u671b\u6309\u5b9e\u90e8\u6392\u5e8f\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e3a\u8be5\u6570\u636e\u7c7b\u578b\u5b9a\u4e49\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c\u5e76\u5728\u521b\u5efa\u7d22\u5f15\u65f6\u9009\u62e9\u5408\u9002\u7684\u90a3\u4e2a\u6765\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u64cd\u4f5c\u7b26\u7c7b\u51b3\u5b9a\u4e86\u57fa\u7840\u6392\u5e8f\u987a\u5e8f\uff08\u4e4b\u540e\u8fd8\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u6392\u5e8f\u9009\u9879 COLLATE \u3001 ASC / DESC \u548c/\u6216 NULLS FIRST / NULLS LAST \u6765\u4fee\u6539\uff09\u3002", "\u9664\u4e86\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u4e4b\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5185\u7f6e\u64cd\u4f5c\u7b26\u7c7b\uff1a"]}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "description": "is above", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7c3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "description": "deprecated, use |>> instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "description": "is left of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "description": "is right of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "description": "is below", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c7c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "description": "deprecated, use <<| instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "description": "same as", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7e3d-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "description": "point inside box", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-point-box", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "description": "distance between", "family_slug": "family-spgist-kd_point_ops", "result_type": "float8", "sort_family": "float_ops", "operator_slug": "op-3c2d3e-point-point", "sort_family_slug": "family-btree-float_ops"}], "signature": "spgist/kd_point_ops", "source_oid": "", "description": ["point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002"], "localization": {"status": "complete", "sources": [{"url": "/docs/18/catalog-pg-amop.html", "method": "same-major semantic node", "sha256": "c46185aa5f574dacd289a0b3876023793406b4cf58dee7eeebb86436d0577bdc", "language": "zh", "matched_nodes": ["#CATALOG-PG-AMOP/p[2]/em[1]", "#CATALOG-PG-AMOP/p[2]/em[2]"]}, {"url": "/docs/18/indexes-opclass.html", "method": "same-major semantic node", "sha256": "d2d3789266054f227a79e8de0e96355c10b20598c2958745751fea464d457f8d", "language": "zh", "matched_nodes": ["#INDEXES-OPCLASS/p[3]", "#INDEXES-OPCLASS/p[5]", "#INDEXES-OPCLASS/p[6]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "SP-GiST operator class for point; member of kd_point_ops.", "/versions/18/facts/0/label": "Object kind", "/versions/18/facts/0/value": "Operator class", "/versions/18/facts/1/label": "Index AM", "/versions/18/facts/2/label": "Input type", "/versions/18/facts/3/label": "Stored key type", "/versions/18/facts/3/value": "Same as input type (catalog zero)", "/versions/18/facts/4/label": "Default class", "/versions/18/facts/4/value": "no", "/versions/18/tables/0/title": "Family operator strategies", "/versions/18/tables/1/title": "Family support functions", "/versions/18/tables/2/title": "Classes in this family", "/versions/18/related/0/label": "SP-GiST Index AM", "/versions/18/related/1/label": "kd_point_ops family", "/versions/18/related/2/label": "point data type", "/versions/18/sections/0/title": "Operator classes and families", "/versions/18/tables/0/rows/0/scope": "Class input pair", "/versions/18/tables/0/rows/1/scope": "Class input pair", "/versions/18/tables/0/rows/2/scope": "Class input pair", "/versions/18/tables/0/rows/3/scope": "Class input pair", "/versions/18/tables/0/rows/4/scope": "Class input pair", "/versions/18/tables/0/rows/5/scope": "Class input pair", "/versions/18/tables/0/rows/6/scope": "Class input pair", "/versions/18/tables/0/rows/7/scope": "Family member", "/versions/18/tables/0/rows/8/scope": "Class input pair", "/versions/18/sections/0/paragraphs/0": "An index definition can specify an operator class for each column of an index.", "/versions/18/sections/0/paragraphs/1": "The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).", "/versions/18/sections/0/paragraphs/2": "There are also some built-in operator classes besides the default ones:", "/versions/18/tables/0/rows/0/purpose": "search", "/versions/18/tables/0/rows/1/purpose": "search", "/versions/18/tables/0/rows/2/purpose": "search", "/versions/18/tables/0/rows/3/purpose": "search", "/versions/18/tables/0/rows/4/purpose": "search", "/versions/18/tables/0/rows/5/purpose": "search", "/versions/18/tables/0/rows/6/purpose": "search", "/versions/18/tables/0/rows/7/purpose": "search", "/versions/18/tables/0/rows/8/purpose": "ordering", "/versions/18/tables/2/rows/0/default": "no", "/versions/18/tables/0/columns/0/label": "Operator overload", "/versions/18/tables/0/columns/1/label": "Strategy", "/versions/18/tables/0/columns/2/label": "Purpose", "/versions/18/tables/0/columns/3/label": "Ordering family", "/versions/18/tables/0/columns/4/label": "Membership scope", "/versions/18/tables/0/columns/5/label": "Source description", "/versions/18/tables/1/columns/0/label": "Support number", "/versions/18/tables/1/columns/1/label": "Left type", "/versions/18/tables/1/columns/2/label": "Right type", "/versions/18/tables/1/columns/3/label": "Function signature", "/versions/18/tables/1/columns/4/label": "Result type", "/versions/18/tables/2/columns/0/label": "Class", "/versions/18/tables/2/columns/1/label": "Input type", "/versions/18/tables/2/columns/2/label": "Key type", "/versions/18/tables/2/columns/3/label": "Default", "/versions/18/tables/2/rows/0/key_type": "Same as input type", "/versions/18/tables/0/rows/0/description": "is above", "/versions/18/tables/0/rows/1/description": "deprecated, use |>> instead", "/versions/18/tables/0/rows/2/description": "is left of", "/versions/18/tables/0/rows/3/description": "is right of", "/versions/18/tables/0/rows/4/description": "is below", "/versions/18/tables/0/rows/5/description": "deprecated, use <<| instead", "/versions/18/tables/0/rows/6/description": "same as", "/versions/18/tables/0/rows/7/description": "point inside box", "/versions/18/tables/0/rows/8/description": "distance between"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "85b9c34568292e9c50ae5fffb1c677b63c05c1ce067e1cbe3d78ed9f7855d9bb"}, "comparison_data": {"kind": "class", "classes": [{"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "sort_family": "float_ops"}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "sort_family": ""}], "attributes": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "bool"}]}, "comparison_hash": "d6cfa2963f1bb6f01544eff3ea7b1b19e01c64fd2e27c475edff84345d1476c7", "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool"}]}, "19": {"class": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "facts": [{"label": "\u5bf9\u8c61\u79cd\u7c7b", "value": "\u64cd\u4f5c\u7b26\u7c7b"}, {"label": "\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5", "value": "SP-GiST"}, {"label": "\u8f93\u5165\u7c7b\u578b", "value": "point"}, {"label": "\u5b58\u50a8\u952e\u7c7b\u578b", "value": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c\uff08\u76ee\u5f55\u503c\u4e3a\u96f6\uff09"}, {"label": "\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b", "value": "\u5426"}], "tables": [{"key": "operators", "rows": [{"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7c3e3e-point-point/?v=19", "text": "|>>(point,point)"}, "strategy": "11", "description": "\u4f4d\u4e8e\u4e0a\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e5e-point-point/?v=19", "text": ">^(point,point)"}, "strategy": "30", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 |>>", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c-point-point/?v=19", "text": "<<(point,point)"}, "strategy": "1", "description": "\u4f4d\u4e8e\u5de6\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e3e-point-point/?v=19", "text": ">>(point,point)"}, "strategy": "5", "description": "\u4f4d\u4e8e\u53f3\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c7c-point-point/?v=19", "text": "<<|(point,point)"}, "strategy": "10", "description": "\u4f4d\u4e8e\u4e0b\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c5e-point-point/?v=19", "text": "<^(point,point)"}, "strategy": "29", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 <<|", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7e3d-point-point/?v=19", "text": "~=(point,point)"}, "strategy": "6", "description": "\u76f8\u540c", "sort_family": ""}, {"scope": "\u5bb6\u65cf\u6210\u5458", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c40-point-box/?v=19", "text": "<@(point,box)"}, "strategy": "8", "description": "\u70b9\u4f4d\u4e8e\u77e9\u5f62\u6846\u5185", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u6392\u5e8f", "operator": {"url": "/wiki/operator/op-3c2d3e-point-point/?v=19", "text": "<->(point,point)"}, "strategy": "15", "description": "\u4e24\u8005\u4e4b\u95f4\u7684\u8ddd\u79bb", "sort_family": "float_ops"}], "title": "\u5bb6\u65cf\u4e2d\u7684\u64cd\u4f5c\u7b26\u7b56\u7565", "columns": [{"key": "operator", "label": "\u64cd\u4f5c\u7b26\u91cd\u8f7d"}, {"key": "strategy", "label": "\u7b56\u7565"}, {"key": "purpose", "label": "\u7528\u9014"}, {"key": "sort_family", "label": "\u6392\u5e8f\u5bb6\u65cf"}, {"key": "scope", "label": "\u6210\u5458\u8303\u56f4"}, {"key": "description", "label": "\u6e90\u7801\u8bf4\u660e"}]}, {"key": "support-functions", "rows": [{"number": "1", "function": "spg_kd_config(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=19", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=19", "text": "point"}, "result_type": "void"}, {"number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=19", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=19", "text": "point"}, "result_type": "void"}, {"number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=19", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=19", "text": "point"}, "result_type": "void"}, {"number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=19", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=19", "text": "point"}, "result_type": "void"}, {"number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=19", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=19", "text": "point"}, "result_type": "bool"}], "title": "\u5bb6\u65cf\u652f\u6301\u51fd\u6570", "columns": [{"key": "number", "label": "\u652f\u6301\u51fd\u6570\u7f16\u53f7"}, {"key": "left_type", "label": "\u5de6\u4fa7\u7c7b\u578b"}, {"key": "right_type", "label": "\u53f3\u4fa7\u7c7b\u578b"}, {"key": "function", "label": "\u51fd\u6570\u7b7e\u540d"}, {"key": "result_type", "label": "\u8fd4\u56de\u7c7b\u578b"}]}, {"key": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-spgist-kd_point_ops/?v=19", "text": "kd_point_ops"}, "default": "\u5426", "key_type": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c", "input_type": {"url": "/wiki/type/point/?v=19", "text": "point"}}], "title": "\u672c\u5bb6\u65cf\u7684\u64cd\u4f5c\u7b26\u7c7b", "columns": [{"key": "class", "label": "\u64cd\u4f5c\u7b26\u7c7b"}, {"key": "input_type", "label": "\u8f93\u5165\u7c7b\u578b"}, {"key": "key_type", "label": "\u952e\u7c7b\u578b"}, {"key": "default", "label": "\u9ed8\u8ba4\u503c"}]}], "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "classes": [{"name": "kd_point_ops", "slug": "class-spgist-kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point", "source_oid": "", "family_slug": "family-spgist-kd_point_ops"}], "related": [{"url": "/wiki/indexam/spgist/?v=19", "label": "SP-GiST \u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5"}, {"url": "/wiki/opclass/family-spgist-kd_point_ops/?v=19", "label": "kd_point_ops \u5bb6\u65cf"}, {"url": "/wiki/type/point/?v=19", "label": "point \u6570\u636e\u7c7b\u578b"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "19beta4", "major": "19", "channel": "preview", "revision": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86", "source_sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86", "manual_fingerprint": "d1c30d7808d3ae2edc8773a0dd66f7beb5861e8939001e171c1908f7a09bb497", "catalog_fingerprint": "9af4323d0c8ed03d0e795331930bd14ce9bf6193c6b766c463b9f6ec0829409a"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}, {"url": "https://pg.center/docs/19/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 19 English manual: indexes-opclass.html", "sha256": "eba382a4227a2865a52fb015c7aec0dbde33d3c24373e3f9ba11e1daeae8b89c", "language": "en", "original_url": "/docs/19/indexes-opclass.html"}, {"url": "https://pg.center/docs/19/catalog-pg-opclass.html", "path": "catalog-pg-opclass.html", "label": "PostgreSQL 19 English manual: catalog-pg-opclass.html", "sha256": "e204d4682013f05c202b6a0df0b7b178ac74d17fceb8936cc97dc3d98e7d530b", "language": "en", "original_url": "/docs/19/catalog-pg-opclass.html"}, {"url": "https://pg.center/docs/19/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 19 English manual: catalog-pg-amop.html", "sha256": "711850fdde973fbaf16da94143a2de3b972bed7a3b8663bf80e4aeabaf2f43fe", "language": "en", "original_url": "/docs/19/catalog-pg-amop.html"}, {"url": "https://pg.center/docs/19/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 19 English manual: catalog-pg-amproc.html", "sha256": "156082a05f95005ad8fabba56d5880f15f3b194d5f378ffee29a77066c77de12", "language": "en", "original_url": "/docs/19/catalog-pg-amproc.html"}], "sections": [{"title": "\u64cd\u4f5c\u7b26\u7c7b\u4e0e\u5bb6\u65cf", "paragraphs": ["\u4e00\u4e2a\u7d22\u5f15\u5b9a\u4e49\u53ef\u4ee5\u4e3a\u7d22\u5f15\u7684\u6bcf\u4e00\u5217\u6307\u5b9a\u4e00\u4e2a \u64cd\u4f5c\u7b26\u7c7b \u3002", "\u64cd\u4f5c\u7b26\u7c7b\u6807\u8bc6\u8be5\u7d22\u5f15\u5728\u8be5\u5217\u4e0a\u8981\u4f7f\u7528\u54ea\u4e9b\u64cd\u4f5c\u7b26\u3002\u4f8b\u5982\uff0c\u7c7b\u578b int4 \u4e0a\u7684\u4e00\u4e2a B-\u6811\u7d22\u5f15\u4f1a\u4f7f\u7528 int4_ops \u7c7b\uff1b\u8fd9\u4e2a\u64cd\u4f5c\u7b26\u7c7b\u5305\u542b\u5bf9 int4 \u503c\u8fdb\u884c\u6bd4\u8f83\u6240\u9700\u7684\u51fd\u6570\u3002\u5b9e\u8df5\u4e2d\uff0c\u5217\u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u901a\u5e38\u5df2\u7ecf\u8db3\u591f\u3002\u4e4b\u6240\u4ee5\u5b58\u5728\u64cd\u4f5c\u7b26\u7c7b\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5bf9\u67d0\u4e9b\u6570\u636e\u7c7b\u578b\u6765\u8bf4\uff0c\u53ef\u80fd\u5b58\u5728\u591a\u79cd\u6709\u610f\u4e49\u7684\u7d22\u5f15\u884c\u4e3a\u3002\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u80fd\u5e0c\u671b\u6309\u7edd\u5bf9\u503c\u6392\u5e8f\u4e00\u79cd\u590d\u6570\u6570\u636e\u7c7b\u578b\uff0c\u4e5f\u53ef\u80fd\u5e0c\u671b\u6309\u5b9e\u90e8\u6392\u5e8f\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e3a\u8be5\u6570\u636e\u7c7b\u578b\u5b9a\u4e49\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c\u5e76\u5728\u521b\u5efa\u7d22\u5f15\u65f6\u9009\u62e9\u5408\u9002\u7684\u90a3\u4e2a\u6765\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u64cd\u4f5c\u7b26\u7c7b\u51b3\u5b9a\u4e86\u57fa\u7840\u6392\u5e8f\u987a\u5e8f\uff08\u4e4b\u540e\u8fd8\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u6392\u5e8f\u9009\u9879 COLLATE \u3001 ASC / DESC \u548c/\u6216 NULLS FIRST / NULLS LAST \u6765\u4fee\u6539\uff09\u3002", "\u9664\u4e86\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u4e4b\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5185\u7f6e\u64cd\u4f5c\u7b26\u7c7b\uff1a"]}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "description": "is above", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7c3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "description": "deprecated, use |>> instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "description": "is left of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "description": "is right of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "description": "is below", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c7c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "description": "deprecated, use <<| instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "description": "same as", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7e3d-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "description": "point inside box", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-point-box", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "description": "distance between", "family_slug": "family-spgist-kd_point_ops", "result_type": "float8", "sort_family": "float_ops", "operator_slug": "op-3c2d3e-point-point", "sort_family_slug": "family-btree-float_ops"}], "signature": "spgist/kd_point_ops", "source_oid": "", "description": ["point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002"], "localization": {"status": "complete", "sources": [{"url": "/docs/19/catalog-pg-amop.html", "method": "same-major semantic node", "sha256": "8685135a1f22b71dfcd182e77ed97d14ceb21f011d1b58b2b168130423c68d5c", "language": "zh", "matched_nodes": ["#CATALOG-PG-AMOP/p[2]/em[1]", "#CATALOG-PG-AMOP/p[2]/em[2]"]}, {"url": "/docs/19/indexes-opclass.html", "method": "same-major semantic node", "sha256": "4b7641f1380b0a251d73741ec707584129005d66bc7a9e701ec660c45294044f", "language": "zh", "matched_nodes": ["#INDEXES-OPCLASS/p[3]", "#INDEXES-OPCLASS/p[5]", "#INDEXES-OPCLASS/p[6]"]}], "language": "zh", "original_text": {"/versions/19/description/0": "SP-GiST operator class for point; member of kd_point_ops.", "/versions/19/facts/0/label": "Object kind", "/versions/19/facts/0/value": "Operator class", "/versions/19/facts/1/label": "Index AM", "/versions/19/facts/2/label": "Input type", "/versions/19/facts/3/label": "Stored key type", "/versions/19/facts/3/value": "Same as input type (catalog zero)", "/versions/19/facts/4/label": "Default class", "/versions/19/facts/4/value": "no", "/versions/19/tables/0/title": "Family operator strategies", "/versions/19/tables/1/title": "Family support functions", "/versions/19/tables/2/title": "Classes in this family", "/versions/19/related/0/label": "SP-GiST Index AM", "/versions/19/related/1/label": "kd_point_ops family", "/versions/19/related/2/label": "point data type", "/versions/19/sections/0/title": "Operator classes and families", "/versions/19/tables/0/rows/0/scope": "Class input pair", "/versions/19/tables/0/rows/1/scope": "Class input pair", "/versions/19/tables/0/rows/2/scope": "Class input pair", "/versions/19/tables/0/rows/3/scope": "Class input pair", "/versions/19/tables/0/rows/4/scope": "Class input pair", "/versions/19/tables/0/rows/5/scope": "Class input pair", "/versions/19/tables/0/rows/6/scope": "Class input pair", "/versions/19/tables/0/rows/7/scope": "Family member", "/versions/19/tables/0/rows/8/scope": "Class input pair", "/versions/19/sections/0/paragraphs/0": "An index definition can specify an operator class for each column of an index.", "/versions/19/sections/0/paragraphs/1": "The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).", "/versions/19/sections/0/paragraphs/2": "There are also some built-in operator classes besides the default ones:", "/versions/19/tables/0/rows/0/purpose": "search", "/versions/19/tables/0/rows/1/purpose": "search", "/versions/19/tables/0/rows/2/purpose": "search", "/versions/19/tables/0/rows/3/purpose": "search", "/versions/19/tables/0/rows/4/purpose": "search", "/versions/19/tables/0/rows/5/purpose": "search", "/versions/19/tables/0/rows/6/purpose": "search", "/versions/19/tables/0/rows/7/purpose": "search", "/versions/19/tables/0/rows/8/purpose": "ordering", "/versions/19/tables/2/rows/0/default": "no", "/versions/19/tables/0/columns/0/label": "Operator overload", "/versions/19/tables/0/columns/1/label": "Strategy", "/versions/19/tables/0/columns/2/label": "Purpose", "/versions/19/tables/0/columns/3/label": "Ordering family", "/versions/19/tables/0/columns/4/label": "Membership scope", "/versions/19/tables/0/columns/5/label": "Source description", "/versions/19/tables/1/columns/0/label": "Support number", "/versions/19/tables/1/columns/1/label": "Left type", "/versions/19/tables/1/columns/2/label": "Right type", "/versions/19/tables/1/columns/3/label": "Function signature", "/versions/19/tables/1/columns/4/label": "Result type", "/versions/19/tables/2/columns/0/label": "Class", "/versions/19/tables/2/columns/1/label": "Input type", "/versions/19/tables/2/columns/2/label": "Key type", "/versions/19/tables/2/columns/3/label": "Default", "/versions/19/tables/2/rows/0/key_type": "Same as input type", "/versions/19/tables/0/rows/0/description": "is above", "/versions/19/tables/0/rows/1/description": "deprecated, use |>> instead", "/versions/19/tables/0/rows/2/description": "is left of", "/versions/19/tables/0/rows/3/description": "is right of", "/versions/19/tables/0/rows/4/description": "is below", "/versions/19/tables/0/rows/5/description": "deprecated, use <<| instead", "/versions/19/tables/0/rows/6/description": "same as", "/versions/19/tables/0/rows/7/description": "point inside box", "/versions/19/tables/0/rows/8/description": "distance between"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "bca2a51f17ba224089359d06041ea6e8be6b1b975565b3b384dc39ca7fc96cf5"}, "comparison_data": {"kind": "class", "classes": [{"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "sort_family": "float_ops"}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "sort_family": ""}], "attributes": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "bool"}]}, "comparison_hash": "d6cfa2963f1bb6f01544eff3ea7b1b19e01c64fd2e27c475edff84345d1476c7", "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool"}]}, "20": {"class": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "facts": [{"label": "\u5bf9\u8c61\u79cd\u7c7b", "value": "\u64cd\u4f5c\u7b26\u7c7b"}, {"label": "\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5", "value": "SP-GiST"}, {"label": "\u8f93\u5165\u7c7b\u578b", "value": "point"}, {"label": "\u5b58\u50a8\u952e\u7c7b\u578b", "value": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c\uff08\u76ee\u5f55\u503c\u4e3a\u96f6\uff09"}, {"label": "\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b", "value": "\u5426"}], "tables": [{"key": "operators", "rows": [{"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7c3e3e-point-point/?v=20", "text": "|>>(point,point)"}, "strategy": "11", "description": "\u4f4d\u4e8e\u4e0a\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e5e-point-point/?v=20", "text": ">^(point,point)"}, "strategy": "30", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 |>>", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c-point-point/?v=20", "text": "<<(point,point)"}, "strategy": "1", "description": "\u4f4d\u4e8e\u5de6\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e3e-point-point/?v=20", "text": ">>(point,point)"}, "strategy": "5", "description": "\u4f4d\u4e8e\u53f3\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c7c-point-point/?v=20", "text": "<<|(point,point)"}, "strategy": "10", "description": "\u4f4d\u4e8e\u4e0b\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c5e-point-point/?v=20", "text": "<^(point,point)"}, "strategy": "29", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 <<|", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7e3d-point-point/?v=20", "text": "~=(point,point)"}, "strategy": "6", "description": "\u76f8\u540c", "sort_family": ""}, {"scope": "\u5bb6\u65cf\u6210\u5458", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c40-point-box/?v=20", "text": "<@(point,box)"}, "strategy": "8", "description": "\u70b9\u4f4d\u4e8e\u77e9\u5f62\u6846\u5185", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u6392\u5e8f", "operator": {"url": "/wiki/operator/op-3c2d3e-point-point/?v=20", "text": "<->(point,point)"}, "strategy": "15", "description": "\u4e24\u8005\u4e4b\u95f4\u7684\u8ddd\u79bb", "sort_family": "float_ops"}], "title": "\u5bb6\u65cf\u4e2d\u7684\u64cd\u4f5c\u7b26\u7b56\u7565", "columns": [{"key": "operator", "label": "\u64cd\u4f5c\u7b26\u91cd\u8f7d"}, {"key": "strategy", "label": "\u7b56\u7565"}, {"key": "purpose", "label": "\u7528\u9014"}, {"key": "sort_family", "label": "\u6392\u5e8f\u5bb6\u65cf"}, {"key": "scope", "label": "\u6210\u5458\u8303\u56f4"}, {"key": "description", "label": "\u6e90\u7801\u8bf4\u660e"}]}, {"key": "support-functions", "rows": [{"number": "1", "function": "spg_kd_config(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=20", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=20", "text": "point"}, "result_type": "void"}, {"number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=20", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=20", "text": "point"}, "result_type": "void"}, {"number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=20", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=20", "text": "point"}, "result_type": "void"}, {"number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=20", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=20", "text": "point"}, "result_type": "void"}, {"number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=20", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=20", "text": "point"}, "result_type": "bool"}], "title": "\u5bb6\u65cf\u652f\u6301\u51fd\u6570", "columns": [{"key": "number", "label": "\u652f\u6301\u51fd\u6570\u7f16\u53f7"}, {"key": "left_type", "label": "\u5de6\u4fa7\u7c7b\u578b"}, {"key": "right_type", "label": "\u53f3\u4fa7\u7c7b\u578b"}, {"key": "function", "label": "\u51fd\u6570\u7b7e\u540d"}, {"key": "result_type", "label": "\u8fd4\u56de\u7c7b\u578b"}]}, {"key": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-spgist-kd_point_ops/?v=20", "text": "kd_point_ops"}, "default": "\u5426", "key_type": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c", "input_type": {"url": "/wiki/type/point/?v=20", "text": "point"}}], "title": "\u672c\u5bb6\u65cf\u7684\u64cd\u4f5c\u7b26\u7c7b", "columns": [{"key": "class", "label": "\u64cd\u4f5c\u7b26\u7c7b"}, {"key": "input_type", "label": "\u8f93\u5165\u7c7b\u578b"}, {"key": "key_type", "label": "\u952e\u7c7b\u578b"}, {"key": "default", "label": "\u9ed8\u8ba4\u503c"}]}], "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "classes": [{"name": "kd_point_ops", "slug": "class-spgist-kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point", "source_oid": "", "family_slug": "family-spgist-kd_point_ops"}], "related": [{"url": "/wiki/indexam/spgist/?v=20", "label": "SP-GiST \u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5"}, {"url": "/wiki/opclass/family-spgist-kd_point_ops/?v=20", "label": "kd_point_ops \u5bb6\u65cf"}, {"url": "/wiki/type/point/?v=20", "label": "point \u6570\u636e\u7c7b\u578b"}], "release": {"ref": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "20devel", "major": "20", "channel": "devel", "revision": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41", "source_sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41", "manual_fingerprint": "48fb9e20e9e1454fe93d367e75b949833c82c1c52c2b69314dfffe1c464f3f39", "catalog_fingerprint": "cc1a474e972c8c342cf17f37e2884c56cc4b114cb59407b0180e99cdcfffa5c5", "source_snapshot_utc": "26-Sep-2026 20:22"}, "sources": [{"url": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41"}, {"url": "https://pg.center/docs/devel/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 20 English manual: indexes-opclass.html", "sha256": "11f438e25406337ef7c41690a7d47744980230c83ade5106803b49a7a09afb80", "language": "en", "original_url": "/docs/devel/indexes-opclass.html"}, {"url": "https://pg.center/docs/devel/catalog-pg-opclass.html", "path": "catalog-pg-opclass.html", "label": "PostgreSQL 20 English manual: catalog-pg-opclass.html", "sha256": "ff36405486ec573922caff5bcf9cf5f8f8375c9371968fbd3ebc8c435a780ce8", "language": "en", "original_url": "/docs/devel/catalog-pg-opclass.html"}, {"url": "https://pg.center/docs/devel/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 20 English manual: catalog-pg-amop.html", "sha256": "00fee8a631088b687e2d880e4091791ca30f9c69fca888c51ece463d1b9e1e61", "language": "en", "original_url": "/docs/devel/catalog-pg-amop.html"}, {"url": "https://pg.center/docs/devel/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 20 English manual: catalog-pg-amproc.html", "sha256": "5390831efcf71a10077be802ab320fbf5d6fc780fdadf679cd162f3a46a3c6d3", "language": "en", "original_url": "/docs/devel/catalog-pg-amproc.html"}], "sections": [{"title": "\u64cd\u4f5c\u7b26\u7c7b\u4e0e\u5bb6\u65cf", "paragraphs": ["\u4e00\u4e2a\u7d22\u5f15\u5b9a\u4e49\u53ef\u4ee5\u4e3a\u7d22\u5f15\u7684\u6bcf\u4e00\u5217\u6307\u5b9a\u4e00\u4e2a \u64cd\u4f5c\u7b26\u7c7b \u3002", "\u64cd\u4f5c\u7b26\u7c7b\u6807\u8bc6\u8be5\u7d22\u5f15\u5728\u8be5\u5217\u4e0a\u8981\u4f7f\u7528\u54ea\u4e9b\u64cd\u4f5c\u7b26\u3002\u4f8b\u5982\uff0c\u7c7b\u578b int4 \u4e0a\u7684\u4e00\u4e2a B-\u6811\u7d22\u5f15\u4f1a\u4f7f\u7528 int4_ops \u7c7b\uff1b\u8fd9\u4e2a\u64cd\u4f5c\u7b26\u7c7b\u5305\u542b\u5bf9 int4 \u503c\u8fdb\u884c\u6bd4\u8f83\u6240\u9700\u7684\u51fd\u6570\u3002\u5b9e\u8df5\u4e2d\uff0c\u5217\u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u901a\u5e38\u5df2\u7ecf\u8db3\u591f\u3002\u4e4b\u6240\u4ee5\u5b58\u5728\u64cd\u4f5c\u7b26\u7c7b\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5bf9\u67d0\u4e9b\u6570\u636e\u7c7b\u578b\u6765\u8bf4\uff0c\u53ef\u80fd\u5b58\u5728\u591a\u79cd\u6709\u610f\u4e49\u7684\u7d22\u5f15\u884c\u4e3a\u3002\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u80fd\u5e0c\u671b\u6309\u7edd\u5bf9\u503c\u6392\u5e8f\u4e00\u79cd\u590d\u6570\u6570\u636e\u7c7b\u578b\uff0c\u4e5f\u53ef\u80fd\u5e0c\u671b\u6309\u5b9e\u90e8\u6392\u5e8f\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e3a\u8be5\u6570\u636e\u7c7b\u578b\u5b9a\u4e49\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c\u5e76\u5728\u521b\u5efa\u7d22\u5f15\u65f6\u9009\u62e9\u5408\u9002\u7684\u90a3\u4e2a\u6765\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u64cd\u4f5c\u7b26\u7c7b\u51b3\u5b9a\u4e86\u57fa\u7840\u6392\u5e8f\u987a\u5e8f\uff08\u4e4b\u540e\u8fd8\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u6392\u5e8f\u9009\u9879 COLLATE \u3001 ASC / DESC \u548c/\u6216 NULLS FIRST / NULLS LAST \u6765\u4fee\u6539\uff09\u3002", "\u9664\u4e86\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u4e4b\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5185\u7f6e\u64cd\u4f5c\u7b26\u7c7b\uff1a"]}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "description": "is above", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7c3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "description": "deprecated, use |>> instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "description": "is left of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "description": "is right of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "description": "is below", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c7c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "description": "deprecated, use <<| instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "description": "same as", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7e3d-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "description": "point inside box", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-point-box", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "description": "distance between", "family_slug": "family-spgist-kd_point_ops", "result_type": "float8", "sort_family": "float_ops", "operator_slug": "op-3c2d3e-point-point", "sort_family_slug": "family-btree-float_ops"}], "signature": "spgist/kd_point_ops", "source_oid": "", "description": ["point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002"], "localization": {"status": "complete", "sources": [{"url": "/docs/devel/catalog-pg-amop.html", "method": "same-major semantic node", "sha256": "e899b3d8b206f52e8dc0ac4b6019e55022abcf901a9d6cf93edf588bc4354664", "language": "zh", "matched_nodes": ["#CATALOG-PG-AMOP/p[2]/em[1]", "#CATALOG-PG-AMOP/p[2]/em[2]"]}, {"url": "/docs/devel/indexes-opclass.html", "method": "same-major semantic node", "sha256": "166b0550fdb1c3e8c1fbd979c5e41c060ed4cfcdc2d6ba4733ec27d22f45a62d", "language": "zh", "matched_nodes": ["#INDEXES-OPCLASS/p[3]", "#INDEXES-OPCLASS/p[5]", "#INDEXES-OPCLASS/p[6]"]}], "language": "zh", "original_text": {"/summary": "SP-GiST operator class for point; member of kd_point_ops.", "/category": "SP-GiST classes", "/versions/20/description/0": "SP-GiST operator class for point; member of kd_point_ops.", "/versions/20/facts/0/label": "Object kind", "/versions/20/facts/0/value": "Operator class", "/versions/20/facts/1/label": "Index AM", "/versions/20/facts/2/label": "Input type", "/versions/20/facts/3/label": "Stored key type", "/versions/20/facts/3/value": "Same as input type (catalog zero)", "/versions/20/facts/4/label": "Default class", "/versions/20/facts/4/value": "no", "/versions/20/tables/0/title": "Family operator strategies", "/versions/20/tables/1/title": "Family support functions", "/versions/20/tables/2/title": "Classes in this family", "/versions/20/related/0/label": "SP-GiST Index AM", "/versions/20/related/1/label": "kd_point_ops family", "/versions/20/related/2/label": "point data type", "/versions/20/sections/0/title": "Operator classes and families", "/versions/20/tables/0/rows/0/scope": "Class input pair", "/versions/20/tables/0/rows/1/scope": "Class input pair", "/versions/20/tables/0/rows/2/scope": "Class input pair", "/versions/20/tables/0/rows/3/scope": "Class input pair", "/versions/20/tables/0/rows/4/scope": "Class input pair", "/versions/20/tables/0/rows/5/scope": "Class input pair", "/versions/20/tables/0/rows/6/scope": "Class input pair", "/versions/20/tables/0/rows/7/scope": "Family member", "/versions/20/tables/0/rows/8/scope": "Class input pair", "/versions/20/sections/0/paragraphs/0": "An index definition can specify an operator class for each column of an index.", "/versions/20/sections/0/paragraphs/1": "The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).", "/versions/20/sections/0/paragraphs/2": "There are also some built-in operator classes besides the default ones:", "/versions/20/tables/0/rows/0/purpose": "search", "/versions/20/tables/0/rows/1/purpose": "search", "/versions/20/tables/0/rows/2/purpose": "search", "/versions/20/tables/0/rows/3/purpose": "search", "/versions/20/tables/0/rows/4/purpose": "search", "/versions/20/tables/0/rows/5/purpose": "search", "/versions/20/tables/0/rows/6/purpose": "search", "/versions/20/tables/0/rows/7/purpose": "search", "/versions/20/tables/0/rows/8/purpose": "ordering", "/versions/20/tables/2/rows/0/default": "no", "/versions/20/tables/0/columns/0/label": "Operator overload", "/versions/20/tables/0/columns/1/label": "Strategy", "/versions/20/tables/0/columns/2/label": "Purpose", "/versions/20/tables/0/columns/3/label": "Ordering family", "/versions/20/tables/0/columns/4/label": "Membership scope", "/versions/20/tables/0/columns/5/label": "Source description", "/versions/20/tables/1/columns/0/label": "Support number", "/versions/20/tables/1/columns/1/label": "Left type", "/versions/20/tables/1/columns/2/label": "Right type", "/versions/20/tables/1/columns/3/label": "Function signature", "/versions/20/tables/1/columns/4/label": "Result type", "/versions/20/tables/2/columns/0/label": "Class", "/versions/20/tables/2/columns/1/label": "Input type", "/versions/20/tables/2/columns/2/label": "Key type", "/versions/20/tables/2/columns/3/label": "Default", "/versions/20/tables/2/rows/0/key_type": "Same as input type", "/versions/20/tables/0/rows/0/description": "is above", "/versions/20/tables/0/rows/1/description": "deprecated, use |>> instead", "/versions/20/tables/0/rows/2/description": "is left of", "/versions/20/tables/0/rows/3/description": "is right of", "/versions/20/tables/0/rows/4/description": "is below", "/versions/20/tables/0/rows/5/description": "deprecated, use <<| instead", "/versions/20/tables/0/rows/6/description": "same as", "/versions/20/tables/0/rows/7/description": "point inside box", "/versions/20/tables/0/rows/8/description": "distance between"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "fba610eccc82fb56f3cd01126293cb6f629d0a049e3829f601c38acc75cc30ea"}, "comparison_data": {"kind": "class", "classes": [{"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "sort_family": "float_ops"}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "sort_family": ""}], "attributes": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "bool"}]}, "comparison_hash": "d6cfa2963f1bb6f01544eff3ea7b1b19e01c64fd2e27c475edff84345d1476c7", "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool"}]}}}, "snapshot": {"class": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "facts": [{"label": "\u5bf9\u8c61\u79cd\u7c7b", "value": "\u64cd\u4f5c\u7b26\u7c7b"}, {"label": "\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5", "value": "SP-GiST"}, {"label": "\u8f93\u5165\u7c7b\u578b", "value": "point"}, {"label": "\u5b58\u50a8\u952e\u7c7b\u578b", "value": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c\uff08\u76ee\u5f55\u503c\u4e3a\u96f6\uff09"}, {"label": "\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b", "value": "\u5426"}], "tables": [{"key": "operators", "rows": [{"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7c3e3e-point-point/?v=18", "text": "|>>(point,point)"}, "strategy": "11", "description": "\u4f4d\u4e8e\u4e0a\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e5e-point-point/?v=18", "text": ">^(point,point)"}, "strategy": "30", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 |>>", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c-point-point/?v=18", "text": "<<(point,point)"}, "strategy": "1", "description": "\u4f4d\u4e8e\u5de6\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3e3e-point-point/?v=18", "text": ">>(point,point)"}, "strategy": "5", "description": "\u4f4d\u4e8e\u53f3\u4fa7", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c3c7c-point-point/?v=18", "text": "<<|(point,point)"}, "strategy": "10", "description": "\u4f4d\u4e8e\u4e0b\u65b9", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c5e-point-point/?v=18", "text": "<^(point,point)"}, "strategy": "29", "description": "\u5df2\u5f03\u7528\uff0c\u8bf7\u6539\u7528 <<|", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-7e3d-point-point/?v=18", "text": "~=(point,point)"}, "strategy": "6", "description": "\u76f8\u540c", "sort_family": ""}, {"scope": "\u5bb6\u65cf\u6210\u5458", "purpose": "\u641c\u7d22", "operator": {"url": "/wiki/operator/op-3c40-point-box/?v=18", "text": "<@(point,box)"}, "strategy": "8", "description": "\u70b9\u4f4d\u4e8e\u77e9\u5f62\u6846\u5185", "sort_family": ""}, {"scope": "\u64cd\u4f5c\u7b26\u7c7b\u8f93\u5165\u7c7b\u578b\u5bf9", "purpose": "\u6392\u5e8f", "operator": {"url": "/wiki/operator/op-3c2d3e-point-point/?v=18", "text": "<->(point,point)"}, "strategy": "15", "description": "\u4e24\u8005\u4e4b\u95f4\u7684\u8ddd\u79bb", "sort_family": "float_ops"}], "title": "\u5bb6\u65cf\u4e2d\u7684\u64cd\u4f5c\u7b26\u7b56\u7565", "columns": [{"key": "operator", "label": "\u64cd\u4f5c\u7b26\u91cd\u8f7d"}, {"key": "strategy", "label": "\u7b56\u7565"}, {"key": "purpose", "label": "\u7528\u9014"}, {"key": "sort_family", "label": "\u6392\u5e8f\u5bb6\u65cf"}, {"key": "scope", "label": "\u6210\u5458\u8303\u56f4"}, {"key": "description", "label": "\u6e90\u7801\u8bf4\u660e"}]}, {"key": "support-functions", "rows": [{"number": "1", "function": "spg_kd_config(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "result_type": "void"}, {"number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "result_type": "void"}, {"number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "result_type": "void"}, {"number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "result_type": "void"}, {"number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "right_type": {"url": "/wiki/type/point/?v=18", "text": "point"}, "result_type": "bool"}], "title": "\u5bb6\u65cf\u652f\u6301\u51fd\u6570", "columns": [{"key": "number", "label": "\u652f\u6301\u51fd\u6570\u7f16\u53f7"}, {"key": "left_type", "label": "\u5de6\u4fa7\u7c7b\u578b"}, {"key": "right_type", "label": "\u53f3\u4fa7\u7c7b\u578b"}, {"key": "function", "label": "\u51fd\u6570\u7b7e\u540d"}, {"key": "result_type", "label": "\u8fd4\u56de\u7c7b\u578b"}]}, {"key": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-spgist-kd_point_ops/?v=18", "text": "kd_point_ops"}, "default": "\u5426", "key_type": "\u4e0e\u8f93\u5165\u7c7b\u578b\u76f8\u540c", "input_type": {"url": "/wiki/type/point/?v=18", "text": "point"}}], "title": "\u672c\u5bb6\u65cf\u7684\u64cd\u4f5c\u7b26\u7c7b", "columns": [{"key": "class", "label": "\u64cd\u4f5c\u7b26\u7c7b"}, {"key": "input_type", "label": "\u8f93\u5165\u7c7b\u578b"}, {"key": "key_type", "label": "\u952e\u7c7b\u578b"}, {"key": "default", "label": "\u9ed8\u8ba4\u503c"}]}], "aliases": ["kd_point_ops", "spgist/kd_point_ops"], "classes": [{"name": "kd_point_ops", "slug": "class-spgist-kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point", "source_oid": "", "family_slug": "family-spgist-kd_point_ops"}], "related": [{"url": "/wiki/indexam/spgist/?v=18", "label": "SP-GiST \u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5"}, {"url": "/wiki/opclass/family-spgist-kd_point_ops/?v=18", "label": "kd_point_ops \u5bb6\u65cf"}, {"url": "/wiki/type/point/?v=18", "label": "point \u6570\u636e\u7c7b\u578b"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "manual_fingerprint": "fefce9e478eb2afe5e17e869492bbedc67dce23d317f0a5257240113d6496ebc", "catalog_fingerprint": "deec62e0f0c649d9d0d058ddd0b16bf41afffd569c3fd73949ff0971ce5cabd6"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, {"url": "https://pg.center/docs/18/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 18 English manual: indexes-opclass.html", "sha256": "07de06abf3a2aff2a891a2789def434d9b76705e54d45ca5338dc13451ae2962", "language": "en", "original_url": "/docs/18/indexes-opclass.html"}, {"url": "https://pg.center/docs/18/catalog-pg-opclass.html", "path": "catalog-pg-opclass.html", "label": "PostgreSQL 18 English manual: catalog-pg-opclass.html", "sha256": "6f131a502f81b813d447e746fc39ee28e5bdfb3ce8e8baea36a71ad0fde78c40", "language": "en", "original_url": "/docs/18/catalog-pg-opclass.html"}, {"url": "https://pg.center/docs/18/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 18 English manual: catalog-pg-amop.html", "sha256": "e65b90ee78eaf4b4da97ce5b08b972cee2e2660b882ec107be22eca47201f7d1", "language": "en", "original_url": "/docs/18/catalog-pg-amop.html"}, {"url": "https://pg.center/docs/18/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 18 English manual: catalog-pg-amproc.html", "sha256": "0a09afbde0ba8da9899bf770b86d8301bee116057b16ebe7db0e4a7fca2e91c6", "language": "en", "original_url": "/docs/18/catalog-pg-amproc.html"}], "sections": [{"title": "\u64cd\u4f5c\u7b26\u7c7b\u4e0e\u5bb6\u65cf", "paragraphs": ["\u4e00\u4e2a\u7d22\u5f15\u5b9a\u4e49\u53ef\u4ee5\u4e3a\u7d22\u5f15\u7684\u6bcf\u4e00\u5217\u6307\u5b9a\u4e00\u4e2a \u64cd\u4f5c\u7b26\u7c7b \u3002", "\u64cd\u4f5c\u7b26\u7c7b\u6807\u8bc6\u8be5\u7d22\u5f15\u5728\u8be5\u5217\u4e0a\u8981\u4f7f\u7528\u54ea\u4e9b\u64cd\u4f5c\u7b26\u3002\u4f8b\u5982\uff0c\u7c7b\u578b int4 \u4e0a\u7684\u4e00\u4e2a B-\u6811\u7d22\u5f15\u4f1a\u4f7f\u7528 int4_ops \u7c7b\uff1b\u8fd9\u4e2a\u64cd\u4f5c\u7b26\u7c7b\u5305\u542b\u5bf9 int4 \u503c\u8fdb\u884c\u6bd4\u8f83\u6240\u9700\u7684\u51fd\u6570\u3002\u5b9e\u8df5\u4e2d\uff0c\u5217\u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u901a\u5e38\u5df2\u7ecf\u8db3\u591f\u3002\u4e4b\u6240\u4ee5\u5b58\u5728\u64cd\u4f5c\u7b26\u7c7b\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u5bf9\u67d0\u4e9b\u6570\u636e\u7c7b\u578b\u6765\u8bf4\uff0c\u53ef\u80fd\u5b58\u5728\u591a\u79cd\u6709\u610f\u4e49\u7684\u7d22\u5f15\u884c\u4e3a\u3002\u4f8b\u5982\uff0c\u6211\u4eec\u53ef\u80fd\u5e0c\u671b\u6309\u7edd\u5bf9\u503c\u6392\u5e8f\u4e00\u79cd\u590d\u6570\u6570\u636e\u7c7b\u578b\uff0c\u4e5f\u53ef\u80fd\u5e0c\u671b\u6309\u5b9e\u90e8\u6392\u5e8f\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e3a\u8be5\u6570\u636e\u7c7b\u578b\u5b9a\u4e49\u4e24\u4e2a\u64cd\u4f5c\u7b26\u7c7b\uff0c\u5e76\u5728\u521b\u5efa\u7d22\u5f15\u65f6\u9009\u62e9\u5408\u9002\u7684\u90a3\u4e2a\u6765\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u64cd\u4f5c\u7b26\u7c7b\u51b3\u5b9a\u4e86\u57fa\u7840\u6392\u5e8f\u987a\u5e8f\uff08\u4e4b\u540e\u8fd8\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u6392\u5e8f\u9009\u9879 COLLATE \u3001 ASC / DESC \u548c/\u6216 NULLS FIRST / NULLS LAST \u6765\u4fee\u6539\uff09\u3002", "\u9664\u4e86\u9ed8\u8ba4\u64cd\u4f5c\u7b26\u7c7b\u4e4b\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5185\u7f6e\u64cd\u4f5c\u7b26\u7c7b\uff1a"]}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "description": "is above", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7c3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "description": "deprecated, use |>> instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "description": "is left of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "description": "is right of", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "description": "is below", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c7c-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "description": "deprecated, use <<| instead", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c5e-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "description": "same as", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-7e3d-point-point", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "description": "point inside box", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-point-box", "sort_family_slug": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "description": "distance between", "family_slug": "family-spgist-kd_point_ops", "result_type": "float8", "sort_family": "float_ops", "operator_slug": "op-3c2d3e-point-point", "sort_family_slug": "family-btree-float_ops"}], "signature": "spgist/kd_point_ops", "source_oid": "", "description": ["point \u7c7b\u578b\u7684 SP-GiST \u64cd\u4f5c\u7b26\u7c7b\uff0c\u5c5e\u4e8e kd_point_ops \u5bb6\u65cf\u3002"], "localization": {"status": "complete", "sources": [{"url": "/docs/18/catalog-pg-amop.html", "method": "same-major semantic node", "sha256": "c46185aa5f574dacd289a0b3876023793406b4cf58dee7eeebb86436d0577bdc", "language": "zh", "matched_nodes": ["#CATALOG-PG-AMOP/p[2]/em[1]", "#CATALOG-PG-AMOP/p[2]/em[2]"]}, {"url": "/docs/18/indexes-opclass.html", "method": "same-major semantic node", "sha256": "d2d3789266054f227a79e8de0e96355c10b20598c2958745751fea464d457f8d", "language": "zh", "matched_nodes": ["#INDEXES-OPCLASS/p[3]", "#INDEXES-OPCLASS/p[5]", "#INDEXES-OPCLASS/p[6]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "SP-GiST operator class for point; member of kd_point_ops.", "/versions/18/facts/0/label": "Object kind", "/versions/18/facts/0/value": "Operator class", "/versions/18/facts/1/label": "Index AM", "/versions/18/facts/2/label": "Input type", "/versions/18/facts/3/label": "Stored key type", "/versions/18/facts/3/value": "Same as input type (catalog zero)", "/versions/18/facts/4/label": "Default class", "/versions/18/facts/4/value": "no", "/versions/18/tables/0/title": "Family operator strategies", "/versions/18/tables/1/title": "Family support functions", "/versions/18/tables/2/title": "Classes in this family", "/versions/18/related/0/label": "SP-GiST Index AM", "/versions/18/related/1/label": "kd_point_ops family", "/versions/18/related/2/label": "point data type", "/versions/18/sections/0/title": "Operator classes and families", "/versions/18/tables/0/rows/0/scope": "Class input pair", "/versions/18/tables/0/rows/1/scope": "Class input pair", "/versions/18/tables/0/rows/2/scope": "Class input pair", "/versions/18/tables/0/rows/3/scope": "Class input pair", "/versions/18/tables/0/rows/4/scope": "Class input pair", "/versions/18/tables/0/rows/5/scope": "Class input pair", "/versions/18/tables/0/rows/6/scope": "Class input pair", "/versions/18/tables/0/rows/7/scope": "Family member", "/versions/18/tables/0/rows/8/scope": "Class input pair", "/versions/18/sections/0/paragraphs/0": "An index definition can specify an operator class for each column of an index.", "/versions/18/sections/0/paragraphs/1": "The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).", "/versions/18/sections/0/paragraphs/2": "There are also some built-in operator classes besides the default ones:", "/versions/18/tables/0/rows/0/purpose": "search", "/versions/18/tables/0/rows/1/purpose": "search", "/versions/18/tables/0/rows/2/purpose": "search", "/versions/18/tables/0/rows/3/purpose": "search", "/versions/18/tables/0/rows/4/purpose": "search", "/versions/18/tables/0/rows/5/purpose": "search", "/versions/18/tables/0/rows/6/purpose": "search", "/versions/18/tables/0/rows/7/purpose": "search", "/versions/18/tables/0/rows/8/purpose": "ordering", "/versions/18/tables/2/rows/0/default": "no", "/versions/18/tables/0/columns/0/label": "Operator overload", "/versions/18/tables/0/columns/1/label": "Strategy", "/versions/18/tables/0/columns/2/label": "Purpose", "/versions/18/tables/0/columns/3/label": "Ordering family", "/versions/18/tables/0/columns/4/label": "Membership scope", "/versions/18/tables/0/columns/5/label": "Source description", "/versions/18/tables/1/columns/0/label": "Support number", "/versions/18/tables/1/columns/1/label": "Left type", "/versions/18/tables/1/columns/2/label": "Right type", "/versions/18/tables/1/columns/3/label": "Function signature", "/versions/18/tables/1/columns/4/label": "Result type", "/versions/18/tables/2/columns/0/label": "Class", "/versions/18/tables/2/columns/1/label": "Input type", "/versions/18/tables/2/columns/2/label": "Key type", "/versions/18/tables/2/columns/3/label": "Default", "/versions/18/tables/2/rows/0/key_type": "Same as input type", "/versions/18/tables/0/rows/0/description": "is above", "/versions/18/tables/0/rows/1/description": "deprecated, use |>> instead", "/versions/18/tables/0/rows/2/description": "is left of", "/versions/18/tables/0/rows/3/description": "is right of", "/versions/18/tables/0/rows/4/description": "is below", "/versions/18/tables/0/rows/5/description": "deprecated, use <<| instead", "/versions/18/tables/0/rows/6/description": "same as", "/versions/18/tables/0/rows/7/description": "point inside box", "/versions/18/tables/0/rows/8/description": "distance between"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "85b9c34568292e9c50ae5fffb1c677b63c05c1ce067e1cbe3d78ed9f7855d9bb"}, "comparison_data": {"kind": "class", "classes": [{"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}], "operators": [{"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<@(point,box)", "strategy": "8", "left_type": "point", "right_type": "box", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<(point,point)", "strategy": "1", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<<|(point,point)", "strategy": "10", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "|>>(point,point)", "strategy": "11", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "ordering", "operator": "<->(point,point)", "strategy": "15", "left_type": "point", "right_type": "point", "sort_family": "float_ops"}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "<^(point,point)", "strategy": "29", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">^(point,point)", "strategy": "30", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": ">>(point,point)", "strategy": "5", "left_type": "point", "right_type": "point", "sort_family": ""}, {"family": "kd_point_ops", "method": "spgist", "purpose": "search", "operator": "~=(point,point)", "strategy": "6", "left_type": "point", "right_type": "point", "sort_family": ""}], "attributes": {"name": "kd_point_ops", "family": "kd_point_ops", "method": "spgist", "default": "f", "key_type": "none", "input_type": "point"}, "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "result_type": "bool"}]}, "comparison_hash": "d6cfa2963f1bb6f01544eff3ea7b1b19e01c64fd2e27c475edff84345d1476c7", "support_functions": [{"family": "kd_point_ops", "method": "spgist", "number": "1", "function": "spg_kd_config(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "2", "function": "spg_kd_choose(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "3", "function": "spg_kd_picksplit(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "4", "function": "spg_kd_inner_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "void"}, {"family": "kd_point_ops", "method": "spgist", "number": "5", "function": "spg_quad_leaf_consistent(internal,internal)", "left_type": "point", "right_type": "point", "family_slug": "family-spgist-kd_point_ops", "result_type": "bool"}]}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}