2016-03-24

Facebook 有趣又強大的搜尋功能 Graph Search

想在 Facebook 上搜尋朋友的朋友、朋友的照片、 我按讚的朋友的照片、社團成員按讚的粉絲專頁、粉絲專頁的粉絲哪些是我朋友、...、 甚至想要搜尋「飛哥與小佛台灣粉絲團的粉絲,同時又是我朋友又是女性的人, 以及不是我的朋友的人,共同的社團的成員,其中又是我朋友,又是洪朝貴的社團的成員, 而且年齡介於18~22的人的照片,同時又是我按讚的照片以及洪朝貴留言的照片」。 天啊,這有可能辦得到嗎?

Facebook 的 Graph Search 辦到了。



一、介紹

Facebook 大約三年前推出 Graph Search ,我記得那時候一開始還不是每個人的帳號都有這功能, 還要預約等待什麼的,而且搜尋貼文的選項是在一段時間後才有。

Graph Search 之所以很多台灣人不知道, 最大的原因就是他只提供給語言為英文 English (US) 的使用者,而我則是一直都用英文版在上 Facebook 。 不過其實 Graph Search 也有中文名字,叫做「社交圖表搜尋」,如圖。 光看就覺得很厲害,只要打出「喜歡單車而且是住在華盛頓州、西雅圖的人」,就能搜尋到耶!

不過 Graph Search 還沒推出中文版,就已經在 2014 年底消失了。 Graph Search 粉絲團 的貼文也是停在 2014 年底就沒再更新。 至於為什麼消失,我也不太清楚,也不是本文重點。

總之,當時的 Graph Search 長得就像這樣。

點一下搜尋列就會很方便的出現搜尋建議,而且不同的搜尋種類有不同顏色。

搜尋時右邊還有選單可以加入更多條件來搜尋,然後搜尋列文字就可能會隨著條件越加越長。

其實上網搜尋 Graph Search 就有一堆教學影片了。哈,翻出以前的截圖還真懷念啊。

現在,與其說 Graph Search 消失,不如說只是被隱藏了。 消失的只是操作的圖形介面,不過搜尋結果的頁面「網址」和搜尋規則, 我在當時都一一記錄了下來,到了現在仍然可以用。 重點來了,所以現在到底要怎麼用呢?


二、教學

首先, Graph Search 敘述的主詞是那個東西的 id ,所以要知道怎麼找 id 。

比方說要找個人帳號的 id,進入個人頁面,網址上的數字就是了。例如
https://www.facebook.com/profile.php?id=100001242951826
他的 id 就是 100001242951826。 如果網址不是顯示成這樣,表示他有自己設定名稱,那就點一下大頭照,出現的網址如果是這樣
https://www.facebook.com/photo.php?fbid=209218832462880&set=a.125564417494989.34868.100001242951826&type=3&theater
那麼他的 id 就是 set 最後那串 100001242951826。 總之,個人的 id "通常"是 10000 開頭的 15 個號碼。

粉絲團和社團 id 的找法也差不多。如果不確定那 id 是不是要找的東西, 直接在網址輸入 www.facebook.com/ 後面加上 id 查詢就行了。

然後,在 Graph Search 網址中,自己的 id 也可以用 "me" 代替。 另外,好像要把語言調成 English (US) 才會看到搜尋的文字敘述。

所有 Graph Search 搜尋,網址都以 https://www.facebook.com/search/ 開頭。以下範例已徵得苦主洪朝貴老師同意。

觀察以下範例網址的規律、舉一反三, 現在要使用 Graph Search 不能靠輸入文字描述,只能靠輸入網址。

  1. 搜尋別人被 tag 的照片以及曾經設定為大頭照的照片 (photos-of) https://www.facebook.com/search/100001242951826/photos-of
    => Photos of 洪朝貴

    這是我最常用的搜尋,通常都可以挖到對方最多照片, 而且就算對方在相簿那裡設定被 tag 的照片不要公開,還是可以從這裡找到。 不過當然,能夠找到的一定是原本照片權限設定讓你可以看得到的。 搜尋很簡單,就是 id 加上 photos-of。

  2. 上傳的照片 (photos-by)
    https://www.facebook.com/search/100001242951826/photos-by
    => Photos by 洪朝貴

    另外只有搜尋 photos 的話,好像就是包含了 photos-of 和 photos-by 的結果。

  3. 按讚的照片 (photos-liked)
    https://www.facebook.com/search/100001242951826/photos-liked
    => Photos liked by 洪朝貴
  4. 留言的照片 (photos-commented)
    https://www.facebook.com/search/100001242951826/photos-commented
    => Photos commented on by 洪朝貴
  5. 社團 (groups)
    https://www.facebook.com/search/100001242951826/groups
    => 洪朝貴's groups

    這個也超好用的,可以找到 Public Group 和 Closed Group ,但不能找到 Secret Group 。

  6. 社團成員 (members)
    https://www.facebook.com/search/468945293170945/members
    => People in OpenStreetMap台灣
  7. 按讚的粉絲專頁 (pages-liked)
    https://www.facebook.com/search/100001242951826/pages-liked
    => Pages liked by 洪朝貴
  8. 粉絲專頁的粉絲 (liker)
    https://www.facebook.com/search/774833192547989/likers
    => People who like Phineas and Ferb Taiwan (飛哥與小佛 台灣粉絲團)
  9. 朋友 (friends)
    https://www.facebook.com/search/100001242951826/friends
    => 洪朝貴's friends

    當然,這個只能在對方向你公開朋友名單時搜尋得到。

  10. 不是朋友 (non-friends)
    https://www.facebook.com/search/me/non-friends
    => People who are not my friends

    咦,這也太怪了,而且好像只能搜尋自己的。

  11. 貼文 (stories-by)
    https://www.facebook.com/search/100001242951826/stories-by
    => 洪朝貴's posts
  12. 被 tag 在內的貼文 (stories-tagged)
    https://www.facebook.com/search/100001242951826/stories-tagged
    => Posts about 洪朝貴

    另外,也可以用 stories-with-tagged 搜尋用 with 來 tag 而不是在內文 tag 的貼文。 然後只有搜尋 stories 的話,好像就是包含了這些 stories 搜尋的結果。

  13. 按讚的貼文 (stories-liked)
    https://www.facebook.com/search/100001242951826/stories-liked
    => Posts liked by 洪朝貴
  14. 留言的貼文 (stories-commented)
    https://www.facebook.com/search/100001242951826/stories-commented
    => Posts commented on by 洪朝貴

以上先列出我比較常用、臨時想得到的一些選項。此外,也有一些形式不太一樣的,例如:

  1. 名字
    https://www.facebook.com/search/str/洪朝貴/users-named
    => People named "洪朝貴"
  2. 年齡範圍
    https://www.facebook.com/search/22/18/users-age-2
    => People who are older than 18 and younger than 22
  3. 出生年份
    https://www.facebook.com/search/1995/date/users-born
    => People who were born in 1995

目前為止都還只是基本的搜尋,Graph Search 強大的地方, 就是可以一次加好幾個條件來做交集(intersect) 聯集(union) 的搜尋。 例如:

  1. 共同朋友
    https://www.facebook.com/search/me/friends/100001242951826/friends/intersect
    => Friends of 洪朝貴 and me

    沒錯,就是一次把好幾個 id+friends 串起來,最後加上 intersect。

  2. 朋友的聯集
    https://www.facebook.com/search/me/friends/100001242951826/friends/union
    => People who are friends of 洪朝貴 and me or are people

    嗯,看起來文字寫得很怪,而且似乎不是那麼實用。 以下皆省略 union ,都只用我比較常用的 intersect 來當例子。


舉一反三,friends 改成 photos-of 就可以搜尋 "Photos of 洪朝貴 and me"; 改成 groups 就可以搜尋 "My groups joined by 洪朝貴"; 改成 pages-liked 就可以搜尋 "Pages liked by me and 洪朝貴" 之類的。

另外,也可以這樣:

  1. https://www.facebook.com/search/me/photos-by/100001242951826/photos-of/intersect
    => Photos by me of 洪朝貴
  2. https://www.facebook.com/search/me/photos-by/100001242951826/photos-of/me/photos-of/me/photos-liked/100001242951826/photos-commented/intersect
    => Photos by me I like that are of me commented on by 洪朝貴 and are of 洪朝貴

看起來很複雜,簡單說就是所有搜尋「同一種類型」的條件(這裡是照片), 都可以串起來,順序隨便排沒關係,但最後要加上 intersect (或 union)。 再舉兩個例子,一樣都是搜尋貼文和一樣都是搜尋人的條件就可以串起來:

  1. https://www.facebook.com/search/774833192547989/stories-by/me/stories-liked/intersect
    => Posts liked by me that are by Phineas and Ferb Taiwan (飛哥與小佛 台灣粉絲團)
  2. https://www.facebook.com/search/774833192547989/likers/me/friends/163517517059282/members/intersect
    => My friends in 飛哥與小佛 Phineas and Ferb who like Phineas and Ferb Taiwan (飛哥與小佛 台灣粉絲團)

接著再更進階一些。同一個條件的敘述可以疊加,也可以藉此改變類型。例如:

  1. 朋友的朋友
    https://www.facebook.com/search/100001242951826/friends/friends
    => Friends of 洪朝貴's friends
  2. 朋友的照片
    https://www.facebook.com/search/100001242951826/friends/photos-of
    => Photos of 洪朝貴's friends
  3. 朋友的社團的成員
    https://www.facebook.com/search/100001242951826/friends/groups/members
    => Members of groups of 洪朝貴's friends
  4. 社團的成員的朋友按讚的粉絲專頁的照片
    https://www.facebook.com/search/100001242951826/groups/members/friends/pages-liked/photos-of
    => Photos of favorite pages of friends of members of 洪朝貴's groups

然後,一樣可以交集收尋,不過一定還是要「同一種類型」的條件才能串起來。

  1. https://www.facebook.com/search/100001242951826/groups/members/friends/pages-liked/photos-of/me/photos-liked/intersect
    => Photos I like that are of favorite pages of friends of members of 洪朝貴's groups
  2. https://www.facebook.com/search/100001242951826/friends/females/intersect
    => 洪朝貴's female friends

    這裡出現一個前面沒提的關鍵字,搜尋性別。 不過好像不能直接 https://www.facebook.com/search/females/ ,要用交集查詢。

  3. https://www.facebook.com/search/me/friends/friends/me/non-friends/intersect
    => People who I may know

    這算是一個特定的用法,搜尋可能認識的人等價於搜尋朋友的朋友但不是朋友。 之前 Graph Search 圖形介面還在時,輸入 People who I may know 搜尋就是產生這樣的網址。

  4. https://www.facebook.com/search/me/friends/me/non-friends/intersect
    => My friends who are not my friends

    亂改一下上一個搜尋,朋友又不是朋友,哈哈,這怎麼可能會搜尋得到啊。 照理說改成 union 應該就行了 (People who are my friends or be not my friends) ,但還是沒有結果,所以有時候 Graph Search 不一定會產生預期的結果。


然後,再更進階一步,交集收尋後的結果可以再繼續疊加條件。

  1. https://www.facebook.com/search/me/groups/100001242951826/groups/intersect/members
    => Members of my groups joined by 洪朝貴
  2. https://www.facebook.com/search/me/friends/friends/me/non-friends/22/18/users-age-2/females/intersect/photos-of
    => Photos of friends of my friends who are women and be not my friends and are older than 18 and younger than 22

最後,交集又疊加後當然也可以繼續交集、繼續疊加。

  1. https://www.facebook.com/search/me/groups/100001242951826/groups/intersect/members/me/friends/intersect/photos-of
    => Photos of my friends who belong to my groups joined by 洪朝貴
  2. https://www.facebook.com/search/774833192547989/likers/me/friends/females/intersect/groups/me/non-friends/groups/intersect/members/me/friends/100001242951826/groups/members/22/18/users-age-2/intersect/photos-of/me/photos-liked/100001242951826/photos-commented/intersect
    => Photos I like that are commented on by 洪朝貴 and are of my friends who are older than 18 and younger than 22 and belong to 洪朝貴's groups and groups of people who are not my friends joined by my female friends who like Phineas and Ferb Taiwan (飛哥與小佛 台灣粉絲團)

隨便亂拼湊的,哇賽,這也太恐怖了吧! 翻成中文就是「飛哥與小佛台灣粉絲團的粉絲,同時又是我朋友又是女性的人, 以及不是我的朋友的人,共同的社團的成員,其中又是我朋友,又是洪朝貴的社團的成員, 而且年齡介於18~22的人的照片,同時又是我按讚的照片以及洪朝貴留言的照片」。

我特地畫了一張示意圖如下,整篇文章的重點以及整個 Graph Search 的精神都在這裡。搞懂這張圖,大概就算是熟悉 Graph Search 的操作了。

看這張圖, intersect 第二個以後的分枝似乎都只能是線性結構, 否則如果又是樹狀結構,勢必還要多一個 intersect , 對於線性結構的網址就會搞不清楚到底是哪裡的 intersect ,我實際上測試就失敗了。 當然,通常都不會搜尋得這麼複雜,這樣要不是找不到結果就是找到一堆不重要的結果。

結論就是,Facebook Graph Search 真的是有趣又強大啊。拼湊出有趣搜尋組合的同時,順便觀察英文敘述也滿好玩的。

這麼好用的功能,似乎真的很多人不知道,畢竟當時只有推出英文版。 而就算之前就在用英文版 Facebook 的人,Graph Search 消失之後也不一定知道還可以從網址下手吧。不過,就算 Graph Search 的網址規則現在還能用,有可能以後哪一天突然改版就不能用了。 所以,把握機會趕快玩玩看吧!

8 comments :

  1. 謝謝分享
    十分實用 非常感謝
    可以問您一個問題嗎
    就是找出來的訊息不會按照年份去排
    而是亂數排序
    比如找照片可能會出現>2012年分>2016年分>2010年分

    沒辦法從最新的開始看

    請問有特別的keyword可以解決這個問題嗎
    謝謝

    ReplyDelete
    Replies
    1. https://www.facebook.com/search/{ID}/photos-of/{year}/date/photos/intersect/
      例如 https://www.facebook.com/search/4/photos-of/2016/date/photos/intersect/
      貼文也可以使用年份排序

      年份
      this-year
      last-year
      this-month
      last-month
      this-week
      last-week
      yesterday
      today
      recent

      Delete
    2. 請問有某年某月的寫法嗎?比如說2016-11?

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. 想請問下搜尋留言的貼文這個關鍵詞是不是失效了?沒有結果

    ReplyDelete
  4. 你好,請問有沒有類似stories-liked和photos-liked,Love/Wow/Angry貼文的搜索方法?謝謝!

    ReplyDelete
  5. 你好,現在按讚有多了其他心情(大心/笑..等等),請問後續有這類的參數名稱可以更新嗎?

    ReplyDelete