我想通過搜索lei4或gmail.com來獲取[email protected]。郵件的postgres全文索引
第一個只有象徵:電子郵件。
我要的是像第二個
我們可以解析到電子郵件,asciiword和主機令牌的電子郵件?任何想法都會有幫助。
我已閱讀tsearch2指南,參考等無法找到解決方案。
我想通過搜索lei4或gmail.com來獲取[email protected]。郵件的postgres全文索引
第一個只有象徵:電子郵件。
我要的是像第二個
我們可以解析到電子郵件,asciiword和主機令牌的電子郵件?任何想法都會有幫助。
我已閱讀tsearch2指南,參考等無法找到解決方案。
一個簡單的解決方案是將電子郵件地址轉換爲local-part at domain-part
,然後將它們提供給TS解析器。
由於at
是英文中的停用詞,因此將被忽略。
=> select to_tsvector('english','lei4 at gmail.com'); to_tsvector ------------------------ 'gmail.com':3 'lei4':1
因此,無論lei4
和gmail.com
要在此的tsvector被發現。
作爲一個附註,[email protected]
是一個有效的電子郵件地址,TS解析器在將它分成四部分時是錯誤的。
創建索引時使用的to_tsvector,它已經存儲在數據庫中,所以這種方式並不好。我希望有一個配置解析器時,杜松子酒索引。感謝您的回覆:) – iamsk
@iamsk:即使它是一個解析器配置,它會在製作tsvectors時發揮作用,之後就太遲了。 –
您可以使用[sqlfiddle](http://sqlfiddle.com)重現該問題嗎? –
對不起,sqlfiddle似乎不支持像這樣的sql。這不是問題,我認爲postgres支持這一點,但我不知道該怎麼辦? – iamsk