2013-08-20 32 views
5

我將PostgreSQL 9.3文檔上materialized views讀來,穿過下面的例子,這是在參考給拼寫檢查一個字來:說明如何使用<-> PostgreSQL中

SELECT word FROM words ORDER BY word <-> 'caterpiler' LIMIT 10; 

我試着搜索谷歌和StackOverflow,但標點符號被過濾掉,我看不出它指的是什麼。有人可以解釋它的用途和用途嗎?

也許一個鏈接到我可以閱讀更多關於它的使用細節的文檔?

+5

'SELECT * FROM pg_operator where oprname ='<->';' – joop

回答

4

根據http://www.postgresql.org/docs/9.1/static/pgtrgm.html

文本<之間的這種操作<->返回編輯距離 - >正文真正返回參數之間的「距離」,這是一個負的相似性()值。

所以整個查詢的編輯距離方面尋找10個最相似的詞的詞「caterpiler」

1

這是查找兩個幾何圖形之間距離的操作符(請參閱documentation)。此外,它的「距離」字符串之間根據this(?Levenshtein's文件沒有說明此明確地):

text <-> text返回參數之間的「距離」,這是一個負的相似性()值。

+0

我非常確定字符串它的編輯區域,孟清湘。 [這是一個例子](http://sqlfiddle.com/#!1/6ccc5/1438)另外值得注意的是OP提到的源代碼是PostgreSQL文檔。 –

+0

這不是一個錯誤,它是一個有效的用法:http://www.postgresql.org/docs/9.1/static/pgtrgm.html – lejlot

+0

你是對的人。修正了我的答案,但@lejlot應該得到接受的答案 –

0

這是運營商「之間的距離」,但它只是記錄操作數是幾何類型(點,形狀等)。

一些實驗用繩子後,它似乎返回levenstein distance的功能:

  • 'abc' <-> 'abc' - > 0
  • 'abc' <-> 'abcd' - > 0.5
  • 'abc' <-> 'abd' - > 0.6666