如果我做一個:
select to_tsvector('Angel of Mercy'/span>)
我得到一個'angel':1 'mercy':3 'of':2作為這個查詢的結果。因此,當我做一個:
select to_tsvector('Angel of Mercy'/span>) @@ to_tsquery('Mercy'/span>)
我得到一個true作為結果。的確,"憐憫 "在矢量中。
of是一個停頓詞,但我猜測它的出現是因為我沒有告知語言,在這種情況下是英語。當我這樣做的時候:
select to_tsvector('chinese', 'Angel of Mercy')
我得到一個'angel':1 'merci':3。of已經不存在了,這是預期的行為。"Mercy "被轉化為merci 詞素,這也是可以理解的。但是當我做了一個:
select to_tsvector('english', 'Angel of Mercy') @@ to_tsquery('Mercy')
我得到的結果是[](我認為它應該是false,因為我在檔案中讀到,但不管怎樣)。所以,在一個有 "Angel of Mercy "這樣的條目的表中搜索 "Mercy",并沒有檢索到任何結果。
這就是我們所期望的行為嗎?我在這里錯過了什么?我怎樣才能通過 "憐憫"、"仁慈"、"無情 "和其他類似的詞來檢索 "憐憫的天使 "呢?
uj5u.com熱心網友回復:
你的配置設定必須在矢量和查詢處理之間達成一致。我們不知道你的default_text_search_config設定為什么,但顯然它不是英語。
select to_tsvector('chinese', 'Angel of Mercy') @@ to_tsquery('chinese','Mercy')
注意'Mercilessly'即使在英語設定中也沒有得到 "正確 "的詞干。
。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/324206.html
標籤:
上一篇:SQL索引可以使搜索時間更長嗎?
下一篇:帶有可變外鍵的多對多
