Насколько я понял, ключевой момент в GIST – хранение близких значений близко.
Т.е INSERT при помощи penalty выбирает самое “близкое” значение и вставляет туда.
Каким образом реализуется penalty/union в hstore/tsearch2 ?
В исходниках используется функция hemdist.. Возможно, в деле замешана дистанция Хэмминга..
Но почему она вычисляется побитно ?..
Т.е что там происходит-то толком, и почему оно работает ?!? ;)