的假設我們有100,000人誰都有屬性,如列表的集合:圖形數據庫技術:情迷度的一致性
height: "between 130 and 140 cm"
eyecolor: "blue"
age_rangee: "16-18"
favorite_music_type: "jazz"
home_city: "NYC"
owns_a_boat: "no"
preferred_flower: "hyacinth"
bathing_frequency_per_month: 60
car_type: "minivan"
house_type: "apartment"
wears_jeans: "often"
wears_sandals: "never"
wears_boots: "sometimes"
屬性集可以從一定程度上的人有所不同的人。屬性的數量可以改變,屬性的類型可能會改變。當然,這些屬性的價值可能會發生變化。但是,給定一個人,我們假設他的屬性與我們收藏中的許多人有一些重疊。
我的問題是:「在圖表數據庫中表達這些各種屬性的最佳方式是什麼,以便我能夠最快速地選擇一組說50個人的屬性與特定個人的屬性最相似的組,並命令他們從最佳匹配來最差的比賽」
感謝肯尼,
在你的榜樣的Cypher查詢,我明白,每個功能節點都包含一個鍵:值 對標識的屬性和它對應值?
這是一個稍微複雜的同餘匹配問題。
假設我們有一個功能集(A,B,C,D,E,F)和100,000個具有某種程度上與此偏好集相匹配的偏好的人。 但是每個功能,不僅可能有偏好,但他們可能沒有偏好。
例如海倫的偏好,(A,B,C,X,Y,Z),並 羅伯特的偏好,(A,B,C,_,_,),(其中下劃線,( ),意味着任何選擇都可以)
我們願率羅伯特·比莉娜更高的優先匹配方面,因爲在 他和李娜有相同數量的匹配喜好,羅伯特有較少的錯誤匹配優
下面是一個更具體的例子:
讓我們假設我們有10萬人對汽車感興趣,並且我們知道汽車的哪些特徵對他們很重要。 我們有10輛汽車,有不同的功能,我們想選擇一組50個人,他們的最佳汽車功能最佳 與10輛汽車中的每輛車相匹配。
有些人會對所有汽車功能的子集沒有偏好。例如,萊斯特對傳輸沒有偏好,無論是'自動'還是'手動',都會很好, 和Rebecca對'顏色','power_windows'和'power_door_locks'沒有偏好。任何顏色都可以,並且她不關心汽車是否有電動車窗和門鎖。
因此,舉例來說,這裏是一個定義的功能集
engine: '4cylinder' transmission: 'automatic' color: 'dark blue' size: 'subcompact' age: 'less than 4 years' power_windows: 'yes' power_door_locks: 'yes' average_gas_milage: 'greater than 30mpg'
在這裏,我們有兩個人,萊斯特,和麗貝卡誰也表示,是重要的是他們的特點一輛車:
萊斯特: engine: '4cylinder' color: 'dark blue' size: 'subcompact' age: 'less than 4 years' power_windows: 'yes' power_door_locks: 'yes' average_gas_milage: 'greater than 30mpg'
麗貝卡: engine: '4cylinder' transmission: 'automatic' size: 'subcompact' age: 'less than 4 years' average_gas_milage: 'greater than 30mpg'
那麼我們如何才能最好地選擇和定購一組50人的功能偏好與每輛車最匹配? 在這種情況下,我們希望最大匹配特徵首選項的人排名第一, ,但我們也希望包含那些對任何特定屬性值感到滿意的人。