You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@s2graph.apache.org by st...@apache.org on 2018/05/14 12:29:49 UTC
[05/25] incubator-s2graph git commit: - start working on examples
showing how to deploy ALS model.
- start working on examples showing how to deploy ALS model.
Project: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/commit/6f9d8527
Tree: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/tree/6f9d8527
Diff: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/diff/6f9d8527
Branch: refs/heads/master
Commit: 6f9d8527bb79e80fe00164f40bf045df5b684b1e
Parents: 319ae49
Author: DO YUNG YOON <st...@apache.org>
Authored: Wed May 2 15:38:32 2018 +0900
Committer: DO YUNG YOON <st...@apache.org>
Committed: Wed May 2 15:38:32 2018 +0900
----------------------------------------------------------------------
project/Common.scala | 4 +
.../s2graph/core/model/AnnoyModelFetcher.scala | 17 +-
s2core/src/test/resources/item_factors.ann | Bin 0 -> 137800 bytes
s2core/src/test/resources/movie.dict | 1682 ++++++++++++++++++
s2core/src/test/resources/user_factors.ann | Bin 0 -> 76804 bytes
.../apache/s2graph/core/model/FetcherTest.scala | 2 +-
s2jobs/build.sbt | 5 +-
.../custom/process/ALSAnnoyBuildProcess.scala | 87 +
.../process/ALSAnnoyBuildProcessTest.scala | 104 ++
9 files changed, 1893 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6f9d8527/project/Common.scala
----------------------------------------------------------------------
diff --git a/project/Common.scala b/project/Common.scala
index 96109d3..04279f4 100644
--- a/project/Common.scala
+++ b/project/Common.scala
@@ -33,6 +33,10 @@ object Common {
val KafkaVersion = "0.10.2.1"
+ val annoy4sVersion = "0.6.0"
+
+ val tensorflowVersion = "1.7.0"
+
/** use Log4j 1.2.17 as the SLF4j backend in runtime, with bridging libraries to forward JCL and JUL logs to SLF4j */
val loggingRuntime = Seq(
"log4j" % "log4j" % "1.2.17",
http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6f9d8527/s2core/src/main/scala/org/apache/s2graph/core/model/AnnoyModelFetcher.scala
----------------------------------------------------------------------
diff --git a/s2core/src/main/scala/org/apache/s2graph/core/model/AnnoyModelFetcher.scala b/s2core/src/main/scala/org/apache/s2graph/core/model/AnnoyModelFetcher.scala
index df083fa..5e0b979 100644
--- a/s2core/src/main/scala/org/apache/s2graph/core/model/AnnoyModelFetcher.scala
+++ b/s2core/src/main/scala/org/apache/s2graph/core/model/AnnoyModelFetcher.scala
@@ -17,10 +17,15 @@ object AnnoyModelFetcher {
val DimensionKey = "annoyIndexDimension"
val IndexTypeKey = "annoyIndexType"
- def loadDictFromLocal(file: File): Array[String] = {
- Source.fromFile(file).getLines().map { line =>
- line.stripMargin
- }.toArray
+ def loadDictFromLocal(file: File): Map[Int, String] = {
+ Source.fromFile(file).getLines().zipWithIndex.map { case (line, _idx) =>
+ val tokens = line.stripMargin.split("\t")
+ if (tokens.length < 2) {
+ (_idx + 1, tokens.head)
+ } else {
+ (tokens.head.toInt, tokens.tail.head)
+ }
+ }.toMap
}
def buildIndex(config: Config): ANNIndexWithDict = {
@@ -36,8 +41,8 @@ object AnnoyModelFetcher {
}
}
-case class ANNIndexWithDict(index: ANNIndex, dict: Array[String]) {
- val dictRev = dict.zipWithIndex.toMap
+case class ANNIndexWithDict(index: ANNIndex, dict: Map[Int, String]) {
+ val dictRev = dict.map(kv => kv._2 -> kv._1)
}
class AnnoyModelFetcher(val graph: S2GraphLike) extends Fetcher {
http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6f9d8527/s2core/src/test/resources/item_factors.ann
----------------------------------------------------------------------
diff --git a/s2core/src/test/resources/item_factors.ann b/s2core/src/test/resources/item_factors.ann
new file mode 100644
index 0000000..190485c
Binary files /dev/null and b/s2core/src/test/resources/item_factors.ann differ
http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6f9d8527/s2core/src/test/resources/movie.dict
----------------------------------------------------------------------
diff --git a/s2core/src/test/resources/movie.dict b/s2core/src/test/resources/movie.dict
new file mode 100644
index 0000000..62a0f5d
--- /dev/null
+++ b/s2core/src/test/resources/movie.dict
@@ -0,0 +1,1682 @@
+1 Toy Story (1995)
+2 GoldenEye (1995)
+3 Four Rooms (1995)
+4 Get Shorty (1995)
+5 Copycat (1995)
+6 Shanghai Triad (Yao a yao yao dao waipo qiao) (1995)
+7 Twelve Monkeys (1995)
+8 Babe (1995)
+9 Dead Man Walking (1995)
+10 Richard III (1995)
+11 Seven (Se7en) (1995)
+12 Usual Suspects, The (1995)
+13 Mighty Aphrodite (1995)
+14 Postino, Il (1994)
+15 Mr. Holland's Opus (1995)
+16 French Twist (Gazon maudit) (1995)
+17 From Dusk Till Dawn (1996)
+18 White Balloon, The (1995)
+19 Antonia's Line (1995)
+20 Angels and Insects (1995)
+21 Muppet Treasure Island (1996)
+22 Braveheart (1995)
+23 Taxi Driver (1976)
+24 Rumble in the Bronx (1995)
+25 Birdcage, The (1996)
+26 Brothers McMullen, The (1995)
+27 Bad Boys (1995)
+28 Apollo 13 (1995)
+29 Batman Forever (1995)
+30 Belle de jour (1967)
+31 Crimson Tide (1995)
+32 Crumb (1994)
+33 Desperado (1995)
+34 Doom Generation, The (1995)
+35 Free Willy 2: The Adventure Home (1995)
+36 Mad Love (1995)
+37 Nadja (1994)
+38 Net, The (1995)
+39 Strange Days (1995)
+40 To Wong Foo, Thanks for Everything! Julie Newmar (1995)
+41 Billy Madison (1995)
+42 Clerks (1994)
+43 Disclosure (1994)
+44 Dolores Claiborne (1994)
+45 Eat Drink Man Woman (1994)
+46 Exotica (1994)
+47 Ed Wood (1994)
+48 Hoop Dreams (1994)
+49 I.Q. (1994)
+50 Star Wars (1977)
+51 Legends of the Fall (1994)
+52 Madness of King George, The (1994)
+53 Natural Born Killers (1994)
+54 Outbreak (1995)
+55 Professional, The (1994)
+56 Pulp Fiction (1994)
+57 Priest (1994)
+58 Quiz Show (1994)
+59 Three Colors: Red (1994)
+60 Three Colors: Blue (1993)
+61 Three Colors: White (1994)
+62 Stargate (1994)
+63 Santa Clause, The (1994)
+64 Shawshank Redemption, The (1994)
+65 What's Eating Gilbert Grape (1993)
+66 While You Were Sleeping (1995)
+67 Ace Ventura: Pet Detective (1994)
+68 Crow, The (1994)
+69 Forrest Gump (1994)
+70 Four Weddings and a Funeral (1994)
+71 Lion King, The (1994)
+72 Mask, The (1994)
+73 Maverick (1994)
+74 Faster Pussycat! Kill! Kill! (1965)
+75 Brother Minister: The Assassination of Malcolm X (1994)
+76 Carlito's Way (1993)
+77 Firm, The (1993)
+78 Free Willy (1993)
+79 Fugitive, The (1993)
+80 Hot Shots! Part Deux (1993)
+81 Hudsucker Proxy, The (1994)
+82 Jurassic Park (1993)
+83 Much Ado About Nothing (1993)
+84 Robert A. Heinlein's The Puppet Masters (1994)
+85 Ref, The (1994)
+86 Remains of the Day, The (1993)
+87 Searching for Bobby Fischer (1993)
+88 Sleepless in Seattle (1993)
+89 Blade Runner (1982)
+90 So I Married an Axe Murderer (1993)
+91 Nightmare Before Christmas, The (1993)
+92 True Romance (1993)
+93 Welcome to the Dollhouse (1995)
+94 Home Alone (1990)
+95 Aladdin (1992)
+96 Terminator 2: Judgment Day (1991)
+97 Dances with Wolves (1990)
+98 Silence of the Lambs, The (1991)
+99 Snow White and the Seven Dwarfs (1937)
+100 Fargo (1996)
+101 Heavy Metal (1981)
+102 Aristocats, The (1970)
+103 All Dogs Go to Heaven 2 (1996)
+104 Theodore Rex (1995)
+105 Sgt. Bilko (1996)
+106 Diabolique (1996)
+107 Moll Flanders (1996)
+108 Kids in the Hall: Brain Candy (1996)
+109 Mystery Science Theater 3000: The Movie (1996)
+110 Operation Dumbo Drop (1995)
+111 Truth About Cats & Dogs, The (1996)
+112 Flipper (1996)
+113 Horseman on the Roof, The (Hussard sur le toit, Le) (1995)
+114 Wallace & Gromit: The Best of Aardman Animation (1996)
+115 Haunted World of Edward D. Wood Jr., The (1995)
+116 Cold Comfort Farm (1995)
+117 Rock, The (1996)
+118 Twister (1996)
+119 Maya Lin: A Strong Clear Vision (1994)
+120 Striptease (1996)
+121 Independence Day (ID4) (1996)
+122 Cable Guy, The (1996)
+123 Frighteners, The (1996)
+124 Lone Star (1996)
+125 Phenomenon (1996)
+126 Spitfire Grill, The (1996)
+127 Godfather, The (1972)
+128 Supercop (1992)
+129 Bound (1996)
+130 Kansas City (1996)
+131 Breakfast at Tiffany's (1961)
+132 Wizard of Oz, The (1939)
+133 Gone with the Wind (1939)
+134 Citizen Kane (1941)
+135 2001: A Space Odyssey (1968)
+136 Mr. Smith Goes to Washington (1939)
+137 Big Night (1996)
+138 D3: The Mighty Ducks (1996)
+139 Love Bug, The (1969)
+140 Homeward Bound: The Incredible Journey (1993)
+141 20,000 Leagues Under the Sea (1954)
+142 Bedknobs and Broomsticks (1971)
+143 Sound of Music, The (1965)
+144 Die Hard (1988)
+145 Lawnmower Man, The (1992)
+146 Unhook the Stars (1996)
+147 Long Kiss Goodnight, The (1996)
+148 Ghost and the Darkness, The (1996)
+149 Jude (1996)
+150 Swingers (1996)
+151 Willy Wonka and the Chocolate Factory (1971)
+152 Sleeper (1973)
+153 Fish Called Wanda, A (1988)
+154 Monty Python's Life of Brian (1979)
+155 Dirty Dancing (1987)
+156 Reservoir Dogs (1992)
+157 Platoon (1986)
+158 Weekend at Bernie's (1989)
+159 Basic Instinct (1992)
+160 Glengarry Glen Ross (1992)
+161 Top Gun (1986)
+162 On Golden Pond (1981)
+163 Return of the Pink Panther, The (1974)
+164 Abyss, The (1989)
+165 Jean de Florette (1986)
+166 Manon of the Spring (Manon des sources) (1986)
+167 Private Benjamin (1980)
+168 Monty Python and the Holy Grail (1974)
+169 Wrong Trousers, The (1993)
+170 Cinema Paradiso (1988)
+171 Delicatessen (1991)
+172 Empire Strikes Back, The (1980)
+173 Princess Bride, The (1987)
+174 Raiders of the Lost Ark (1981)
+175 Brazil (1985)
+176 Aliens (1986)
+177 Good, The Bad and The Ugly, The (1966)
+178 12 Angry Men (1957)
+179 Clockwork Orange, A (1971)
+180 Apocalypse Now (1979)
+181 Return of the Jedi (1983)
+182 GoodFellas (1990)
+183 Alien (1979)
+184 Army of Darkness (1993)
+185 Psycho (1960)
+186 Blues Brothers, The (1980)
+187 Godfather: Part II, The (1974)
+188 Full Metal Jacket (1987)
+189 Grand Day Out, A (1992)
+190 Henry V (1989)
+191 Amadeus (1984)
+192 Raging Bull (1980)
+193 Right Stuff, The (1983)
+194 Sting, The (1973)
+195 Terminator, The (1984)
+196 Dead Poets Society (1989)
+197 Graduate, The (1967)
+198 Nikita (La Femme Nikita) (1990)
+199 Bridge on the River Kwai, The (1957)
+200 Shining, The (1980)
+201 Evil Dead II (1987)
+202 Groundhog Day (1993)
+203 Unforgiven (1992)
+204 Back to the Future (1985)
+205 Patton (1970)
+206 Akira (1988)
+207 Cyrano de Bergerac (1990)
+208 Young Frankenstein (1974)
+209 This Is Spinal Tap (1984)
+210 Indiana Jones and the Last Crusade (1989)
+211 M*A*S*H (1970)
+212 Unbearable Lightness of Being, The (1988)
+213 Room with a View, A (1986)
+214 Pink Floyd - The Wall (1982)
+215 Field of Dreams (1989)
+216 When Harry Met Sally... (1989)
+217 Bram Stoker's Dracula (1992)
+218 Cape Fear (1991)
+219 Nightmare on Elm Street, A (1984)
+220 Mirror Has Two Faces, The (1996)
+221 Breaking the Waves (1996)
+222 Star Trek: First Contact (1996)
+223 Sling Blade (1996)
+224 Ridicule (1996)
+225 101 Dalmatians (1996)
+226 Die Hard 2 (1990)
+227 Star Trek VI: The Undiscovered Country (1991)
+228 Star Trek: The Wrath of Khan (1982)
+229 Star Trek III: The Search for Spock (1984)
+230 Star Trek IV: The Voyage Home (1986)
+231 Batman Returns (1992)
+232 Young Guns (1988)
+233 Under Siege (1992)
+234 Jaws (1975)
+235 Mars Attacks! (1996)
+236 Citizen Ruth (1996)
+237 Jerry Maguire (1996)
+238 Raising Arizona (1987)
+239 Sneakers (1992)
+240 Beavis and Butt-head Do America (1996)
+241 Last of the Mohicans, The (1992)
+242 Kolya (1996)
+243 Jungle2Jungle (1997)
+244 Smilla's Sense of Snow (1997)
+245 Devil's Own, The (1997)
+246 Chasing Amy (1997)
+247 Turbo: A Power Rangers Movie (1997)
+248 Grosse Pointe Blank (1997)
+249 Austin Powers: International Man of Mystery (1997)
+250 Fifth Element, The (1997)
+251 Shall We Dance? (1996)
+252 Lost World: Jurassic Park, The (1997)
+253 Pillow Book, The (1995)
+254 Batman & Robin (1997)
+255 My Best Friend's Wedding (1997)
+256 When the Cats Away (Chacun cherche son chat) (1996)
+257 Men in Black (1997)
+258 Contact (1997)
+259 George of the Jungle (1997)
+260 Event Horizon (1997)
+261 Air Bud (1997)
+262 In the Company of Men (1997)
+263 Steel (1997)
+264 Mimic (1997)
+265 Hunt for Red October, The (1990)
+266 Kull the Conqueror (1997)
+267 unknown
+268 Chasing Amy (1997)
+269 Full Monty, The (1997)
+270 Gattaca (1997)
+271 Starship Troopers (1997)
+272 Good Will Hunting (1997)
+273 Heat (1995)
+274 Sabrina (1995)
+275 Sense and Sensibility (1995)
+276 Leaving Las Vegas (1995)
+277 Restoration (1995)
+278 Bed of Roses (1996)
+279 Once Upon a Time... When We Were Colored (1995)
+280 Up Close and Personal (1996)
+281 River Wild, The (1994)
+282 Time to Kill, A (1996)
+283 Emma (1996)
+284 Tin Cup (1996)
+285 Secrets & Lies (1996)
+286 English Patient, The (1996)
+287 Marvin's Room (1996)
+288 Scream (1996)
+289 Evita (1996)
+290 Fierce Creatures (1997)
+291 Absolute Power (1997)
+292 Rosewood (1997)
+293 Donnie Brasco (1997)
+294 Liar Liar (1997)
+295 Breakdown (1997)
+296 Promesse, La (1996)
+297 Ulee's Gold (1997)
+298 Face/Off (1997)
+299 Hoodlum (1997)
+300 Air Force One (1997)
+301 In & Out (1997)
+302 L.A. Confidential (1997)
+303 Ulee's Gold (1997)
+304 Fly Away Home (1996)
+305 Ice Storm, The (1997)
+306 Mrs. Brown (Her Majesty, Mrs. Brown) (1997)
+307 Devil's Advocate, The (1997)
+308 FairyTale: A True Story (1997)
+309 Deceiver (1997)
+310 Rainmaker, The (1997)
+311 Wings of the Dove, The (1997)
+312 Midnight in the Garden of Good and Evil (1997)
+313 Titanic (1997)
+314 3 Ninjas: High Noon At Mega Mountain (1998)
+315 Apt Pupil (1998)
+316 As Good As It Gets (1997)
+317 In the Name of the Father (1993)
+318 Schindler's List (1993)
+319 Everyone Says I Love You (1996)
+320 Paradise Lost: The Child Murders at Robin Hood Hills (1996)
+321 Mother (1996)
+322 Murder at 1600 (1997)
+323 Dante's Peak (1997)
+324 Lost Highway (1997)
+325 Crash (1996)
+326 G.I. Jane (1997)
+327 Cop Land (1997)
+328 Conspiracy Theory (1997)
+329 Desperate Measures (1998)
+330 187 (1997)
+331 Edge, The (1997)
+332 Kiss the Girls (1997)
+333 Game, The (1997)
+334 U Turn (1997)
+335 How to Be a Player (1997)
+336 Playing God (1997)
+337 House of Yes, The (1997)
+338 Bean (1997)
+339 Mad City (1997)
+340 Boogie Nights (1997)
+341 Critical Care (1997)
+342 Man Who Knew Too Little, The (1997)
+343 Alien: Resurrection (1997)
+344 Apostle, The (1997)
+345 Deconstructing Harry (1997)
+346 Jackie Brown (1997)
+347 Wag the Dog (1997)
+348 Desperate Measures (1998)
+349 Hard Rain (1998)
+350 Fallen (1998)
+351 Prophecy II, The (1998)
+352 Spice World (1997)
+353 Deep Rising (1998)
+354 Wedding Singer, The (1998)
+355 Sphere (1998)
+356 Client, The (1994)
+357 One Flew Over the Cuckoo's Nest (1975)
+358 Spawn (1997)
+359 Assignment, The (1997)
+360 Wonderland (1997)
+361 Incognito (1997)
+362 Blues Brothers 2000 (1998)
+363 Sudden Death (1995)
+364 Ace Ventura: When Nature Calls (1995)
+365 Powder (1995)
+366 Dangerous Minds (1995)
+367 Clueless (1995)
+368 Bio-Dome (1996)
+369 Black Sheep (1996)
+370 Mary Reilly (1996)
+371 Bridges of Madison County, The (1995)
+372 Jeffrey (1995)
+373 Judge Dredd (1995)
+374 Mighty Morphin Power Rangers: The Movie (1995)
+375 Showgirls (1995)
+376 Houseguest (1994)
+377 Heavyweights (1994)
+378 Miracle on 34th Street (1994)
+379 Tales From the Crypt Presents: Demon Knight (1995)
+380 Star Trek: Generations (1994)
+381 Muriel's Wedding (1994)
+382 Adventures of Priscilla, Queen of the Desert, The (1994)
+383 Flintstones, The (1994)
+384 Naked Gun 33 1/3: The Final Insult (1994)
+385 True Lies (1994)
+386 Addams Family Values (1993)
+387 Age of Innocence, The (1993)
+388 Beverly Hills Cop III (1994)
+389 Black Beauty (1994)
+390 Fear of a Black Hat (1993)
+391 Last Action Hero (1993)
+392 Man Without a Face, The (1993)
+393 Mrs. Doubtfire (1993)
+394 Radioland Murders (1994)
+395 Robin Hood: Men in Tights (1993)
+396 Serial Mom (1994)
+397 Striking Distance (1993)
+398 Super Mario Bros. (1993)
+399 Three Musketeers, The (1993)
+400 Little Rascals, The (1994)
+401 Brady Bunch Movie, The (1995)
+402 Ghost (1990)
+403 Batman (1989)
+404 Pinocchio (1940)
+405 Mission: Impossible (1996)
+406 Thinner (1996)
+407 Spy Hard (1996)
+408 Close Shave, A (1995)
+409 Jack (1996)
+410 Kingpin (1996)
+411 Nutty Professor, The (1996)
+412 Very Brady Sequel, A (1996)
+413 Tales from the Crypt Presents: Bordello of Blood (1996)
+414 My Favorite Year (1982)
+415 Apple Dumpling Gang, The (1975)
+416 Old Yeller (1957)
+417 Parent Trap, The (1961)
+418 Cinderella (1950)
+419 Mary Poppins (1964)
+420 Alice in Wonderland (1951)
+421 William Shakespeare's Romeo and Juliet (1996)
+422 Aladdin and the King of Thieves (1996)
+423 E.T. the Extra-Terrestrial (1982)
+424 Children of the Corn: The Gathering (1996)
+425 Bob Roberts (1992)
+426 Transformers: The Movie, The (1986)
+427 To Kill a Mockingbird (1962)
+428 Harold and Maude (1971)
+429 Day the Earth Stood Still, The (1951)
+430 Duck Soup (1933)
+431 Highlander (1986)
+432 Fantasia (1940)
+433 Heathers (1989)
+434 Forbidden Planet (1956)
+435 Butch Cassidy and the Sundance Kid (1969)
+436 American Werewolf in London, An (1981)
+437 Amityville 1992: It's About Time (1992)
+438 Amityville 3-D (1983)
+439 Amityville: A New Generation (1993)
+440 Amityville II: The Possession (1982)
+441 Amityville Horror, The (1979)
+442 Amityville Curse, The (1990)
+443 Birds, The (1963)
+444 Blob, The (1958)
+445 Body Snatcher, The (1945)
+446 Burnt Offerings (1976)
+447 Carrie (1976)
+448 Omen, The (1976)
+449 Star Trek: The Motion Picture (1979)
+450 Star Trek V: The Final Frontier (1989)
+451 Grease (1978)
+452 Jaws 2 (1978)
+453 Jaws 3-D (1983)
+454 Bastard Out of Carolina (1996)
+455 Jackie Chan's First Strike (1996)
+456 Beverly Hills Ninja (1997)
+457 Free Willy 3: The Rescue (1997)
+458 Nixon (1995)
+459 Cry, the Beloved Country (1995)
+460 Crossing Guard, The (1995)
+461 Smoke (1995)
+462 Like Water For Chocolate (Como agua para chocolate) (1992)
+463 Secret of Roan Inish, The (1994)
+464 Vanya on 42nd Street (1994)
+465 Jungle Book, The (1994)
+466 Red Rock West (1992)
+467 Bronx Tale, A (1993)
+468 Rudy (1993)
+469 Short Cuts (1993)
+470 Tombstone (1993)
+471 Courage Under Fire (1996)
+472 Dragonheart (1996)
+473 James and the Giant Peach (1996)
+474 Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb (1963)
+475 Trainspotting (1996)
+476 First Wives Club, The (1996)
+477 Matilda (1996)
+478 Philadelphia Story, The (1940)
+479 Vertigo (1958)
+480 North by Northwest (1959)
+481 Apartment, The (1960)
+482 Some Like It Hot (1959)
+483 Casablanca (1942)
+484 Maltese Falcon, The (1941)
+485 My Fair Lady (1964)
+486 Sabrina (1954)
+487 Roman Holiday (1953)
+488 Sunset Blvd. (1950)
+489 Notorious (1946)
+490 To Catch a Thief (1955)
+491 Adventures of Robin Hood, The (1938)
+492 East of Eden (1955)
+493 Thin Man, The (1934)
+494 His Girl Friday (1940)
+495 Around the World in 80 Days (1956)
+496 It's a Wonderful Life (1946)
+497 Bringing Up Baby (1938)
+498 African Queen, The (1951)
+499 Cat on a Hot Tin Roof (1958)
+500 Fly Away Home (1996)
+501 Dumbo (1941)
+502 Bananas (1971)
+503 Candidate, The (1972)
+504 Bonnie and Clyde (1967)
+505 Dial M for Murder (1954)
+506 Rebel Without a Cause (1955)
+507 Streetcar Named Desire, A (1951)
+508 People vs. Larry Flynt, The (1996)
+509 My Left Foot (1989)
+510 Magnificent Seven, The (1954)
+511 Lawrence of Arabia (1962)
+512 Wings of Desire (1987)
+513 Third Man, The (1949)
+514 Annie Hall (1977)
+515 Boot, Das (1981)
+516 Local Hero (1983)
+517 Manhattan (1979)
+518 Miller's Crossing (1990)
+519 Treasure of the Sierra Madre, The (1948)
+520 Great Escape, The (1963)
+521 Deer Hunter, The (1978)
+522 Down by Law (1986)
+523 Cool Hand Luke (1967)
+524 Great Dictator, The (1940)
+525 Big Sleep, The (1946)
+526 Ben-Hur (1959)
+527 Gandhi (1982)
+528 Killing Fields, The (1984)
+529 My Life as a Dog (Mitt liv som hund) (1985)
+530 Man Who Would Be King, The (1975)
+531 Shine (1996)
+532 Kama Sutra: A Tale of Love (1996)
+533 Daytrippers, The (1996)
+534 Traveller (1997)
+535 Addicted to Love (1997)
+536 Ponette (1996)
+537 My Own Private Idaho (1991)
+538 Anastasia (1997)
+539 Mouse Hunt (1997)
+540 Money Train (1995)
+541 Mortal Kombat (1995)
+542 Pocahontas (1995)
+543 Mis�rables, Les (1995)
+544 Things to Do in Denver when You're Dead (1995)
+545 Vampire in Brooklyn (1995)
+546 Broken Arrow (1996)
+547 Young Poisoner's Handbook, The (1995)
+548 NeverEnding Story III, The (1994)
+549 Rob Roy (1995)
+550 Die Hard: With a Vengeance (1995)
+551 Lord of Illusions (1995)
+552 Species (1995)
+553 Walk in the Clouds, A (1995)
+554 Waterworld (1995)
+555 White Man's Burden (1995)
+556 Wild Bill (1995)
+557 Farinelli: il castrato (1994)
+558 Heavenly Creatures (1994)
+559 Interview with the Vampire (1994)
+560 Kid in King Arthur's Court, A (1995)
+561 Mary Shelley's Frankenstein (1994)
+562 Quick and the Dead, The (1995)
+563 Stephen King's The Langoliers (1995)
+564 Tales from the Hood (1995)
+565 Village of the Damned (1995)
+566 Clear and Present Danger (1994)
+567 Wes Craven's New Nightmare (1994)
+568 Speed (1994)
+569 Wolf (1994)
+570 Wyatt Earp (1994)
+571 Another Stakeout (1993)
+572 Blown Away (1994)
+573 Body Snatchers (1993)
+574 Boxing Helena (1993)
+575 City Slickers II: The Legend of Curly's Gold (1994)
+576 Cliffhanger (1993)
+577 Coneheads (1993)
+578 Demolition Man (1993)
+579 Fatal Instinct (1993)
+580 Englishman Who Went Up a Hill, But Came Down a Mountain, The (1995)
+581 Kalifornia (1993)
+582 Piano, The (1993)
+583 Romeo Is Bleeding (1993)
+584 Secret Garden, The (1993)
+585 Son in Law (1993)
+586 Terminal Velocity (1994)
+587 Hour of the Pig, The (1993)
+588 Beauty and the Beast (1991)
+589 Wild Bunch, The (1969)
+590 Hellraiser: Bloodline (1996)
+591 Primal Fear (1996)
+592 True Crime (1995)
+593 Stalingrad (1993)
+594 Heavy (1995)
+595 Fan, The (1996)
+596 Hunchback of Notre Dame, The (1996)
+597 Eraser (1996)
+598 Big Squeeze, The (1996)
+599 Police Story 4: Project S (Chao ji ji hua) (1993)
+600 Daniel Defoe's Robinson Crusoe (1996)
+601 For Whom the Bell Tolls (1943)
+602 American in Paris, An (1951)
+603 Rear Window (1954)
+604 It Happened One Night (1934)
+605 Meet Me in St. Louis (1944)
+606 All About Eve (1950)
+607 Rebecca (1940)
+608 Spellbound (1945)
+609 Father of the Bride (1950)
+610 Gigi (1958)
+611 Laura (1944)
+612 Lost Horizon (1937)
+613 My Man Godfrey (1936)
+614 Giant (1956)
+615 39 Steps, The (1935)
+616 Night of the Living Dead (1968)
+617 Blue Angel, The (Blaue Engel, Der) (1930)
+618 Picnic (1955)
+619 Extreme Measures (1996)
+620 Chamber, The (1996)
+621 Davy Crockett, King of the Wild Frontier (1955)
+622 Swiss Family Robinson (1960)
+623 Angels in the Outfield (1994)
+624 Three Caballeros, The (1945)
+625 Sword in the Stone, The (1963)
+626 So Dear to My Heart (1949)
+627 Robin Hood: Prince of Thieves (1991)
+628 Sleepers (1996)
+629 Victor/Victoria (1982)
+630 Great Race, The (1965)
+631 Crying Game, The (1992)
+632 Sophie's Choice (1982)
+633 Christmas Carol, A (1938)
+634 Microcosmos: Le peuple de l'herbe (1996)
+635 Fog, The (1980)
+636 Escape from New York (1981)
+637 Howling, The (1981)
+638 Return of Martin Guerre, The (Retour de Martin Guerre, Le) (1982)
+639 Tin Drum, The (Blechtrommel, Die) (1979)
+640 Cook the Thief His Wife & Her Lover, The (1989)
+641 Paths of Glory (1957)
+642 Grifters, The (1990)
+643 The Innocent (1994)
+644 Thin Blue Line, The (1988)
+645 Paris Is Burning (1990)
+646 Once Upon a Time in the West (1969)
+647 Ran (1985)
+648 Quiet Man, The (1952)
+649 Once Upon a Time in America (1984)
+650 Seventh Seal, The (Sjunde inseglet, Det) (1957)
+651 Glory (1989)
+652 Rosencrantz and Guildenstern Are Dead (1990)
+653 Touch of Evil (1958)
+654 Chinatown (1974)
+655 Stand by Me (1986)
+656 M (1931)
+657 Manchurian Candidate, The (1962)
+658 Pump Up the Volume (1990)
+659 Arsenic and Old Lace (1944)
+660 Fried Green Tomatoes (1991)
+661 High Noon (1952)
+662 Somewhere in Time (1980)
+663 Being There (1979)
+664 Paris, Texas (1984)
+665 Alien 3 (1992)
+666 Blood For Dracula (Andy Warhol's Dracula) (1974)
+667 Audrey Rose (1977)
+668 Blood Beach (1981)
+669 Body Parts (1991)
+670 Body Snatchers (1993)
+671 Bride of Frankenstein (1935)
+672 Candyman (1992)
+673 Cape Fear (1962)
+674 Cat People (1982)
+675 Nosferatu (Nosferatu, eine Symphonie des Grauens) (1922)
+676 Crucible, The (1996)
+677 Fire on the Mountain (1996)
+678 Volcano (1997)
+679 Conan the Barbarian (1981)
+680 Kull the Conqueror (1997)
+681 Wishmaster (1997)
+682 I Know What You Did Last Summer (1997)
+683 Rocket Man (1997)
+684 In the Line of Fire (1993)
+685 Executive Decision (1996)
+686 Perfect World, A (1993)
+687 McHale's Navy (1997)
+688 Leave It to Beaver (1997)
+689 Jackal, The (1997)
+690 Seven Years in Tibet (1997)
+691 Dark City (1998)
+692 American President, The (1995)
+693 Casino (1995)
+694 Persuasion (1995)
+695 Kicking and Screaming (1995)
+696 City Hall (1996)
+697 Basketball Diaries, The (1995)
+698 Browning Version, The (1994)
+699 Little Women (1994)
+700 Miami Rhapsody (1995)
+701 Wonderful, Horrible Life of Leni Riefenstahl, The (1993)
+702 Barcelona (1994)
+703 Widows' Peak (1994)
+704 House of the Spirits, The (1993)
+705 Singin' in the Rain (1952)
+706 Bad Moon (1996)
+707 Enchanted April (1991)
+708 Sex, Lies, and Videotape (1989)
+709 Strictly Ballroom (1992)
+710 Better Off Dead... (1985)
+711 Substance of Fire, The (1996)
+712 Tin Men (1987)
+713 Othello (1995)
+714 Carrington (1995)
+715 To Die For (1995)
+716 Home for the Holidays (1995)
+717 Juror, The (1996)
+718 In the Bleak Midwinter (1995)
+719 Canadian Bacon (1994)
+720 First Knight (1995)
+721 Mallrats (1995)
+722 Nine Months (1995)
+723 Boys on the Side (1995)
+724 Circle of Friends (1995)
+725 Exit to Eden (1994)
+726 Fluke (1995)
+727 Immortal Beloved (1994)
+728 Junior (1994)
+729 Nell (1994)
+730 Queen Margot (Reine Margot, La) (1994)
+731 Corrina, Corrina (1994)
+732 Dave (1993)
+733 Go Fish (1994)
+734 Made in America (1993)
+735 Philadelphia (1993)
+736 Shadowlands (1993)
+737 Sirens (1994)
+738 Threesome (1994)
+739 Pretty Woman (1990)
+740 Jane Eyre (1996)
+741 Last Supper, The (1995)
+742 Ransom (1996)
+743 Crow: City of Angels, The (1996)
+744 Michael Collins (1996)
+745 Ruling Class, The (1972)
+746 Real Genius (1985)
+747 Benny & Joon (1993)
+748 Saint, The (1997)
+749 MatchMaker, The (1997)
+750 Amistad (1997)
+751 Tomorrow Never Dies (1997)
+752 Replacement Killers, The (1998)
+753 Burnt By the Sun (1994)
+754 Red Corner (1997)
+755 Jumanji (1995)
+756 Father of the Bride Part II (1995)
+757 Across the Sea of Time (1995)
+758 Lawnmower Man 2: Beyond Cyberspace (1996)
+759 Fair Game (1995)
+760 Screamers (1995)
+761 Nick of Time (1995)
+762 Beautiful Girls (1996)
+763 Happy Gilmore (1996)
+764 If Lucy Fell (1996)
+765 Boomerang (1992)
+766 Man of the Year (1995)
+767 Addiction, The (1995)
+768 Casper (1995)
+769 Congo (1995)
+770 Devil in a Blue Dress (1995)
+771 Johnny Mnemonic (1995)
+772 Kids (1995)
+773 Mute Witness (1994)
+774 Prophecy, The (1995)
+775 Something to Talk About (1995)
+776 Three Wishes (1995)
+777 Castle Freak (1995)
+778 Don Juan DeMarco (1995)
+779 Drop Zone (1994)
+780 Dumb & Dumber (1994)
+781 French Kiss (1995)
+782 Little Odessa (1994)
+783 Milk Money (1994)
+784 Beyond Bedlam (1993)
+785 Only You (1994)
+786 Perez Family, The (1995)
+787 Roommates (1995)
+788 Relative Fear (1994)
+789 Swimming with Sharks (1995)
+790 Tommy Boy (1995)
+791 Baby-Sitters Club, The (1995)
+792 Bullets Over Broadway (1994)
+793 Crooklyn (1994)
+794 It Could Happen to You (1994)
+795 Richie Rich (1994)
+796 Speechless (1994)
+797 Timecop (1994)
+798 Bad Company (1995)
+799 Boys Life (1995)
+800 In the Mouth of Madness (1995)
+801 Air Up There, The (1994)
+802 Hard Target (1993)
+803 Heaven & Earth (1993)
+804 Jimmy Hollywood (1994)
+805 Manhattan Murder Mystery (1993)
+806 Menace II Society (1993)
+807 Poetic Justice (1993)
+808 Program, The (1993)
+809 Rising Sun (1993)
+810 Shadow, The (1994)
+811 Thirty-Two Short Films About Glenn Gould (1993)
+812 Andre (1994)
+813 Celluloid Closet, The (1995)
+814 Great Day in Harlem, A (1994)
+815 One Fine Day (1996)
+816 Candyman: Farewell to the Flesh (1995)
+817 Frisk (1995)
+818 Girl 6 (1996)
+819 Eddie (1996)
+820 Space Jam (1996)
+821 Mrs. Winterbourne (1996)
+822 Faces (1968)
+823 Mulholland Falls (1996)
+824 Great White Hype, The (1996)
+825 Arrival, The (1996)
+826 Phantom, The (1996)
+827 Daylight (1996)
+828 Alaska (1996)
+829 Fled (1996)
+830 Power 98 (1995)
+831 Escape from L.A. (1996)
+832 Bogus (1996)
+833 Bulletproof (1996)
+834 Halloween: The Curse of Michael Myers (1995)
+835 Gay Divorcee, The (1934)
+836 Ninotchka (1939)
+837 Meet John Doe (1941)
+838 In the Line of Duty 2 (1987)
+839 Loch Ness (1995)
+840 Last Man Standing (1996)
+841 Glimmer Man, The (1996)
+842 Pollyanna (1960)
+843 Shaggy Dog, The (1959)
+844 Freeway (1996)
+845 That Thing You Do! (1996)
+846 To Gillian on Her 37th Birthday (1996)
+847 Looking for Richard (1996)
+848 Murder, My Sweet (1944)
+849 Days of Thunder (1990)
+850 Perfect Candidate, A (1996)
+851 Two or Three Things I Know About Her (1966)
+852 Bloody Child, The (1996)
+853 Braindead (1992)
+854 Bad Taste (1987)
+855 Diva (1981)
+856 Night on Earth (1991)
+857 Paris Was a Woman (1995)
+858 Amityville: Dollhouse (1996)
+859 April Fool's Day (1986)
+860 Believers, The (1987)
+861 Nosferatu a Venezia (1986)
+862 Jingle All the Way (1996)
+863 Garden of Finzi-Contini, The (Giardino dei Finzi-Contini, Il) (1970)
+864 My Fellow Americans (1996)
+865 Ice Storm, The (1997)
+866 Michael (1996)
+867 Whole Wide World, The (1996)
+868 Hearts and Minds (1996)
+869 Fools Rush In (1997)
+870 Touch (1997)
+871 Vegas Vacation (1997)
+872 Love Jones (1997)
+873 Picture Perfect (1997)
+874 Career Girls (1997)
+875 She's So Lovely (1997)
+876 Money Talks (1997)
+877 Excess Baggage (1997)
+878 That Darn Cat! (1997)
+879 Peacemaker, The (1997)
+880 Soul Food (1997)
+881 Money Talks (1997)
+882 Washington Square (1997)
+883 Telling Lies in America (1997)
+884 Year of the Horse (1997)
+885 Phantoms (1998)
+886 Life Less Ordinary, A (1997)
+887 Eve's Bayou (1997)
+888 One Night Stand (1997)
+889 Tango Lesson, The (1997)
+890 Mortal Kombat: Annihilation (1997)
+891 Bent (1997)
+892 Flubber (1997)
+893 For Richer or Poorer (1997)
+894 Home Alone 3 (1997)
+895 Scream 2 (1997)
+896 Sweet Hereafter, The (1997)
+897 Time Tracers (1995)
+898 Postman, The (1997)
+899 Winter Guest, The (1997)
+900 Kundun (1997)
+901 Mr. Magoo (1997)
+902 Big Lebowski, The (1998)
+903 Afterglow (1997)
+904 Ma vie en rose (My Life in Pink) (1997)
+905 Great Expectations (1998)
+906 Oscar & Lucinda (1997)
+907 Vermin (1998)
+908 Half Baked (1998)
+909 Dangerous Beauty (1998)
+910 Nil By Mouth (1997)
+911 Twilight (1998)
+912 U.S. Marshalls (1998)
+913 Love and Death on Long Island (1997)
+914 Wild Things (1998)
+915 Primary Colors (1998)
+916 Lost in Space (1998)
+917 Mercury Rising (1998)
+918 City of Angels (1998)
+919 City of Lost Children, The (1995)
+920 Two Bits (1995)
+921 Farewell My Concubine (1993)
+922 Dead Man (1995)
+923 Raise the Red Lantern (1991)
+924 White Squall (1996)
+925 Unforgettable (1996)
+926 Down Periscope (1996)
+927 Flower of My Secret, The (Flor de mi secreto, La) (1995)
+928 Craft, The (1996)
+929 Harriet the Spy (1996)
+930 Chain Reaction (1996)
+931 Island of Dr. Moreau, The (1996)
+932 First Kid (1996)
+933 Funeral, The (1996)
+934 Preacher's Wife, The (1996)
+935 Paradise Road (1997)
+936 Brassed Off (1996)
+937 Thousand Acres, A (1997)
+938 Smile Like Yours, A (1997)
+939 Murder in the First (1995)
+940 Airheads (1994)
+941 With Honors (1994)
+942 What's Love Got to Do with It (1993)
+943 Killing Zoe (1994)
+944 Renaissance Man (1994)
+945 Charade (1963)
+946 Fox and the Hound, The (1981)
+947 Big Blue, The (Grand bleu, Le) (1988)
+948 Booty Call (1997)
+949 How to Make an American Quilt (1995)
+950 Georgia (1995)
+951 Indian in the Cupboard, The (1995)
+952 Blue in the Face (1995)
+953 Unstrung Heroes (1995)
+954 Unzipped (1995)
+955 Before Sunrise (1995)
+956 Nobody's Fool (1994)
+957 Pushing Hands (1992)
+958 To Live (Huozhe) (1994)
+959 Dazed and Confused (1993)
+960 Naked (1993)
+961 Orlando (1993)
+962 Ruby in Paradise (1993)
+963 Some Folks Call It a Sling Blade (1993)
+964 Month by the Lake, A (1995)
+965 Funny Face (1957)
+966 Affair to Remember, An (1957)
+967 Little Lord Fauntleroy (1936)
+968 Inspector General, The (1949)
+969 Winnie the Pooh and the Blustery Day (1968)
+970 Hear My Song (1991)
+971 Mediterraneo (1991)
+972 Passion Fish (1992)
+973 Grateful Dead (1995)
+974 Eye for an Eye (1996)
+975 Fear (1996)
+976 Solo (1996)
+977 Substitute, The (1996)
+978 Heaven's Prisoners (1996)
+979 Trigger Effect, The (1996)
+980 Mother Night (1996)
+981 Dangerous Ground (1997)
+982 Maximum Risk (1996)
+983 Rich Man's Wife, The (1996)
+984 Shadow Conspiracy (1997)
+985 Blood & Wine (1997)
+986 Turbulence (1997)
+987 Underworld (1997)
+988 Beautician and the Beast, The (1997)
+989 Cats Don't Dance (1997)
+990 Anna Karenina (1997)
+991 Keys to Tulsa (1997)
+992 Head Above Water (1996)
+993 Hercules (1997)
+994 Last Time I Committed Suicide, The (1997)
+995 Kiss Me, Guido (1997)
+996 Big Green, The (1995)
+997 Stuart Saves His Family (1995)
+998 Cabin Boy (1994)
+999 Clean Slate (1994)
+1000 Lightning Jack (1994)
+1001 Stupids, The (1996)
+1002 Pest, The (1997)
+1003 That Darn Cat! (1997)
+1004 Geronimo: An American Legend (1993)
+1005 Double vie de V�ronique, La (Double Life of Veronique, The) (1991)
+1006 Until the End of the World (Bis ans Ende der Welt) (1991)
+1007 Waiting for Guffman (1996)
+1008 I Shot Andy Warhol (1996)
+1009 Stealing Beauty (1996)
+1010 Basquiat (1996)
+1011 2 Days in the Valley (1996)
+1012 Private Parts (1997)
+1013 Anaconda (1997)
+1014 Romy and Michele's High School Reunion (1997)
+1015 Shiloh (1997)
+1016 Con Air (1997)
+1017 Trees Lounge (1996)
+1018 Tie Me Up! Tie Me Down! (1990)
+1019 Die xue shuang xiong (Killer, The) (1989)
+1020 Gaslight (1944)
+1021 8 1/2 (1963)
+1022 Fast, Cheap & Out of Control (1997)
+1023 Fathers' Day (1997)
+1024 Mrs. Dalloway (1997)
+1025 Fire Down Below (1997)
+1026 Lay of the Land, The (1997)
+1027 Shooter, The (1995)
+1028 Grumpier Old Men (1995)
+1029 Jury Duty (1995)
+1030 Beverly Hillbillies, The (1993)
+1031 Lassie (1994)
+1032 Little Big League (1994)
+1033 Homeward Bound II: Lost in San Francisco (1996)
+1034 Quest, The (1996)
+1035 Cool Runnings (1993)
+1036 Drop Dead Fred (1991)
+1037 Grease 2 (1982)
+1038 Switchback (1997)
+1039 Hamlet (1996)
+1040 Two if by Sea (1996)
+1041 Forget Paris (1995)
+1042 Just Cause (1995)
+1043 Rent-a-Kid (1995)
+1044 Paper, The (1994)
+1045 Fearless (1993)
+1046 Malice (1993)
+1047 Multiplicity (1996)
+1048 She's the One (1996)
+1049 House Arrest (1996)
+1050 Ghost and Mrs. Muir, The (1947)
+1051 Associate, The (1996)
+1052 Dracula: Dead and Loving It (1995)
+1053 Now and Then (1995)
+1054 Mr. Wrong (1996)
+1055 Simple Twist of Fate, A (1994)
+1056 Cronos (1992)
+1057 Pallbearer, The (1996)
+1058 War, The (1994)
+1059 Don't Be a Menace to South Central While Drinking Your Juice in the Hood (1996)
+1060 Adventures of Pinocchio, The (1996)
+1061 Evening Star, The (1996)
+1062 Four Days in September (1997)
+1063 Little Princess, A (1995)
+1064 Crossfire (1947)
+1065 Koyaanisqatsi (1983)
+1066 Balto (1995)
+1067 Bottle Rocket (1996)
+1068 Star Maker, The (Uomo delle stelle, L') (1995)
+1069 Amateur (1994)
+1070 Living in Oblivion (1995)
+1071 Party Girl (1995)
+1072 Pyromaniac's Love Story, A (1995)
+1073 Shallow Grave (1994)
+1074 Reality Bites (1994)
+1075 Man of No Importance, A (1994)
+1076 Pagemaster, The (1994)
+1077 Love and a .45 (1994)
+1078 Oliver & Company (1988)
+1079 Joe's Apartment (1996)
+1080 Celestial Clockwork (1994)
+1081 Curdled (1996)
+1082 Female Perversions (1996)
+1083 Albino Alligator (1996)
+1084 Anne Frank Remembered (1995)
+1085 Carried Away (1996)
+1086 It's My Party (1995)
+1087 Bloodsport 2 (1995)
+1088 Double Team (1997)
+1089 Speed 2: Cruise Control (1997)
+1090 Sliver (1993)
+1091 Pete's Dragon (1977)
+1092 Dear God (1996)
+1093 Live Nude Girls (1995)
+1094 Thin Line Between Love and Hate, A (1996)
+1095 High School High (1996)
+1096 Commandments (1997)
+1097 Hate (Haine, La) (1995)
+1098 Flirting With Disaster (1996)
+1099 Red Firecracker, Green Firecracker (1994)
+1100 What Happened Was... (1994)
+1101 Six Degrees of Separation (1993)
+1102 Two Much (1996)
+1103 Trust (1990)
+1104 C'est arriv� pr�s de chez vous (1992)
+1105 Firestorm (1998)
+1106 Newton Boys, The (1998)
+1107 Beyond Rangoon (1995)
+1108 Feast of July (1995)
+1109 Death and the Maiden (1994)
+1110 Tank Girl (1995)
+1111 Double Happiness (1994)
+1112 Cobb (1994)
+1113 Mrs. Parker and the Vicious Circle (1994)
+1114 Faithful (1996)
+1115 Twelfth Night (1996)
+1116 Mark of Zorro, The (1940)
+1117 Surviving Picasso (1996)
+1118 Up in Smoke (1978)
+1119 Some Kind of Wonderful (1987)
+1120 I'm Not Rappaport (1996)
+1121 Umbrellas of Cherbourg, The (Parapluies de Cherbourg, Les) (1964)
+1122 They Made Me a Criminal (1939)
+1123 Last Time I Saw Paris, The (1954)
+1124 Farewell to Arms, A (1932)
+1125 Innocents, The (1961)
+1126 Old Man and the Sea, The (1958)
+1127 Truman Show, The (1998)
+1128 Heidi Fleiss: Hollywood Madam (1995)
+1129 Chungking Express (1994)
+1130 Jupiter's Wife (1994)
+1131 Safe (1995)
+1132 Feeling Minnesota (1996)
+1133 Escape to Witch Mountain (1975)
+1134 Get on the Bus (1996)
+1135 Doors, The (1991)
+1136 Ghosts of Mississippi (1996)
+1137 Beautiful Thing (1996)
+1138 Best Men (1997)
+1139 Hackers (1995)
+1140 Road to Wellville, The (1994)
+1141 War Room, The (1993)
+1142 When We Were Kings (1996)
+1143 Hard Eight (1996)
+1144 Quiet Room, The (1996)
+1145 Blue Chips (1994)
+1146 Calendar Girl (1993)
+1147 My Family (1995)
+1148 Tom & Viv (1994)
+1149 Walkabout (1971)
+1150 Last Dance (1996)
+1151 Original Gangstas (1996)
+1152 In Love and War (1996)
+1153 Backbeat (1993)
+1154 Alphaville (1965)
+1155 Rendezvous in Paris (Rendez-vous de Paris, Les) (1995)
+1156 Cyclo (1995)
+1157 Relic, The (1997)
+1158 Fille seule, La (A Single Girl) (1995)
+1159 Stalker (1979)
+1160 Love! Valour! Compassion! (1997)
+1161 Palookaville (1996)
+1162 Phat Beach (1996)
+1163 Portrait of a Lady, The (1996)
+1164 Zeus and Roxanne (1997)
+1165 Big Bully (1996)
+1166 Love & Human Remains (1993)
+1167 Sum of Us, The (1994)
+1168 Little Buddha (1993)
+1169 Fresh (1994)
+1170 Spanking the Monkey (1994)
+1171 Wild Reeds (1994)
+1172 Women, The (1939)
+1173 Bliss (1997)
+1174 Caught (1996)
+1175 Hugo Pool (1997)
+1176 Welcome To Sarajevo (1997)
+1177 Dunston Checks In (1996)
+1178 Major Payne (1994)
+1179 Man of the House (1995)
+1180 I Love Trouble (1994)
+1181 Low Down Dirty Shame, A (1994)
+1182 Cops and Robbersons (1994)
+1183 Cowboy Way, The (1994)
+1184 Endless Summer 2, The (1994)
+1185 In the Army Now (1994)
+1186 Inkwell, The (1994)
+1187 Switchblade Sisters (1975)
+1188 Young Guns II (1990)
+1189 Prefontaine (1997)
+1190 That Old Feeling (1997)
+1191 Letter From Death Row, A (1998)
+1192 Boys of St. Vincent, The (1993)
+1193 Before the Rain (Pred dozhdot) (1994)
+1194 Once Were Warriors (1994)
+1195 Strawberry and Chocolate (Fresa y chocolate) (1993)
+1196 Savage Nights (Nuits fauves, Les) (1992)
+1197 Family Thing, A (1996)
+1198 Purple Noon (1960)
+1199 Cemetery Man (Dellamorte Dellamore) (1994)
+1200 Kim (1950)
+1201 Marlene Dietrich: Shadow and Light (1996)
+1202 Maybe, Maybe Not (Bewegte Mann, Der) (1994)
+1203 Top Hat (1935)
+1204 To Be or Not to Be (1942)
+1205 Secret Agent, The (1996)
+1206 Amos & Andrew (1993)
+1207 Jade (1995)
+1208 Kiss of Death (1995)
+1209 Mixed Nuts (1994)
+1210 Virtuosity (1995)
+1211 Blue Sky (1994)
+1212 Flesh and Bone (1993)
+1213 Guilty as Sin (1993)
+1214 In the Realm of the Senses (Ai no corrida) (1976)
+1215 Barb Wire (1996)
+1216 Kissed (1996)
+1217 Assassins (1995)
+1218 Friday (1995)
+1219 Goofy Movie, A (1995)
+1220 Higher Learning (1995)
+1221 When a Man Loves a Woman (1994)
+1222 Judgment Night (1993)
+1223 King of the Hill (1993)
+1224 Scout, The (1994)
+1225 Angus (1995)
+1226 Night Falls on Manhattan (1997)
+1227 Awfully Big Adventure, An (1995)
+1228 Under Siege 2: Dark Territory (1995)
+1229 Poison Ivy II (1995)
+1230 Ready to Wear (Pret-A-Porter) (1994)
+1231 Marked for Death (1990)
+1232 Madonna: Truth or Dare (1991)
+1233 N�nette et Boni (1996)
+1234 Chairman of the Board (1998)
+1235 Big Bang Theory, The (1994)
+1236 Other Voices, Other Rooms (1997)
+1237 Twisted (1996)
+1238 Full Speed (1996)
+1239 Cutthroat Island (1995)
+1240 Ghost in the Shell (Kokaku kidotai) (1995)
+1241 Van, The (1996)
+1242 Old Lady Who Walked in the Sea, The (Vieille qui marchait dans la mer, La) (1991)
+1243 Night Flier (1997)
+1244 Metro (1997)
+1245 Gridlock'd (1997)
+1246 Bushwhacked (1995)
+1247 Bad Girls (1994)
+1248 Blink (1994)
+1249 For Love or Money (1993)
+1250 Best of the Best 3: No Turning Back (1995)
+1251 A Chef in Love (1996)
+1252 Contempt (M�pris, Le) (1963)
+1253 Tie That Binds, The (1995)
+1254 Gone Fishin' (1997)
+1255 Broken English (1996)
+1256 Designated Mourner, The (1997)
+1257 Designated Mourner, The (1997)
+1258 Trial and Error (1997)
+1259 Pie in the Sky (1995)
+1260 Total Eclipse (1995)
+1261 Run of the Country, The (1995)
+1262 Walking and Talking (1996)
+1263 Foxfire (1996)
+1264 Nothing to Lose (1994)
+1265 Star Maps (1997)
+1266 Bread and Chocolate (Pane e cioccolata) (1973)
+1267 Clockers (1995)
+1268 Bitter Moon (1992)
+1269 Love in the Afternoon (1957)
+1270 Life with Mikey (1993)
+1271 North (1994)
+1272 Talking About Sex (1994)
+1273 Color of Night (1994)
+1274 Robocop 3 (1993)
+1275 Killer (Bulletproof Heart) (1994)
+1276 Sunset Park (1996)
+1277 Set It Off (1996)
+1278 Selena (1997)
+1279 Wild America (1997)
+1280 Gang Related (1997)
+1281 Manny & Lo (1996)
+1282 Grass Harp, The (1995)
+1283 Out to Sea (1997)
+1284 Before and After (1996)
+1285 Princess Caraboo (1994)
+1286 Shall We Dance? (1937)
+1287 Ed (1996)
+1288 Denise Calls Up (1995)
+1289 Jack and Sarah (1995)
+1290 Country Life (1994)
+1291 Celtic Pride (1996)
+1292 Simple Wish, A (1997)
+1293 Star Kid (1997)
+1294 Ayn Rand: A Sense of Life (1997)
+1295 Kicked in the Head (1997)
+1296 Indian Summer (1996)
+1297 Love Affair (1994)
+1298 Band Wagon, The (1953)
+1299 Penny Serenade (1941)
+1300 'Til There Was You (1997)
+1301 Stripes (1981)
+1302 Late Bloomers (1996)
+1303 Getaway, The (1994)
+1304 New York Cop (1996)
+1305 National Lampoon's Senior Trip (1995)
+1306 Delta of Venus (1994)
+1307 Carmen Miranda: Bananas Is My Business (1994)
+1308 Babyfever (1994)
+1309 Very Natural Thing, A (1974)
+1310 Walk in the Sun, A (1945)
+1311 Waiting to Exhale (1995)
+1312 Pompatus of Love, The (1996)
+1313 Palmetto (1998)
+1314 Surviving the Game (1994)
+1315 Inventing the Abbotts (1997)
+1316 Horse Whisperer, The (1998)
+1317 Journey of August King, The (1995)
+1318 Catwalk (1995)
+1319 Neon Bible, The (1995)
+1320 Homage (1995)
+1321 Open Season (1996)
+1322 Metisse (Caf� au Lait) (1993)
+1323 Wooden Man's Bride, The (Wu Kui) (1994)
+1324 Loaded (1994)
+1325 August (1996)
+1326 Boys (1996)
+1327 Captives (1994)
+1328 Of Love and Shadows (1994)
+1329 Low Life, The (1994)
+1330 An Unforgettable Summer (1994)
+1331 Last Klezmer: Leopold Kozlowski, His Life and Music, The (1995)
+1332 My Life and Times With Antonin Artaud (En compagnie d'Antonin Artaud) (1993)
+1333 Midnight Dancers (Sibak) (1994)
+1334 Somebody to Love (1994)
+1335 American Buffalo (1996)
+1336 Kazaam (1996)
+1337 Larger Than Life (1996)
+1338 Two Deaths (1995)
+1339 Stefano Quantestorie (1993)
+1340 Crude Oasis, The (1995)
+1341 Hedd Wyn (1992)
+1342 Convent, The (Convento, O) (1995)
+1343 Lotto Land (1995)
+1344 Story of Xinghua, The (1993)
+1345 Day the Sun Turned Cold, The (Tianguo niezi) (1994)
+1346 Dingo (1992)
+1347 Ballad of Narayama, The (Narayama Bushiko) (1958)
+1348 Every Other Weekend (1990)
+1349 Mille bolle blu (1993)
+1350 Crows and Sparrows (1949)
+1351 Lover's Knot (1996)
+1352 Shadow of Angels (Schatten der Engel) (1976)
+1353 1-900 (1994)
+1354 Venice/Venice (1992)
+1355 Infinity (1996)
+1356 Ed's Next Move (1996)
+1357 For the Moment (1994)
+1358 The Deadly Cure (1996)
+1359 Boys in Venice (1996)
+1360 Sexual Life of the Belgians, The (1994)
+1361 Search for One-eye Jimmy, The (1996)
+1362 American Strays (1996)
+1363 Leopard Son, The (1996)
+1364 Bird of Prey (1996)
+1365 Johnny 100 Pesos (1993)
+1366 JLG/JLG - autoportrait de d�cembre (1994)
+1367 Faust (1994)
+1368 Mina Tannenbaum (1994)
+1369 Forbidden Christ, The (Cristo proibito, Il) (1950)
+1370 I Can't Sleep (J'ai pas sommeil) (1994)
+1371 Machine, The (1994)
+1372 Stranger, The (1994)
+1373 Good Morning (1971)
+1374 Falling in Love Again (1980)
+1375 Cement Garden, The (1993)
+1376 Meet Wally Sparks (1997)
+1377 Hotel de Love (1996)
+1378 Rhyme & Reason (1997)
+1379 Love and Other Catastrophes (1996)
+1380 Hollow Reed (1996)
+1381 Losing Chase (1996)
+1382 Bonheur, Le (1965)
+1383 Second Jungle Book: Mowgli & Baloo, The (1997)
+1384 Squeeze (1996)
+1385 Roseanna's Grave (For Roseanna) (1997)
+1386 Tetsuo II: Body Hammer (1992)
+1387 Fall (1997)
+1388 Gabbeh (1996)
+1389 Mondo (1996)
+1390 Innocent Sleep, The (1995)
+1391 For Ever Mozart (1996)
+1392 Locusts, The (1997)
+1393 Stag (1997)
+1394 Swept from the Sea (1997)
+1395 Hurricane Streets (1998)
+1396 Stonewall (1995)
+1397 Of Human Bondage (1934)
+1398 Anna (1996)
+1399 Stranger in the House (1997)
+1400 Picture Bride (1995)
+1401 M. Butterfly (1993)
+1402 Ciao, Professore! (1993)
+1403 Caro Diario (Dear Diary) (1994)
+1404 Withnail and I (1987)
+1405 Boy's Life 2 (1997)
+1406 When Night Is Falling (1995)
+1407 Specialist, The (1994)
+1408 Gordy (1995)
+1409 Swan Princess, The (1994)
+1410 Harlem (1993)
+1411 Barbarella (1968)
+1412 Land Before Time III: The Time of the Great Giving (1995) (V)
+1413 Street Fighter (1994)
+1414 Coldblooded (1995)
+1415 Next Karate Kid, The (1994)
+1416 No Escape (1994)
+1417 Turning, The (1992)
+1418 Joy Luck Club, The (1993)
+1419 Highlander III: The Sorcerer (1994)
+1420 Gilligan's Island: The Movie (1998)
+1421 My Crazy Life (Mi vida loca) (1993)
+1422 Suture (1993)
+1423 Walking Dead, The (1995)
+1424 I Like It Like That (1994)
+1425 I'll Do Anything (1994)
+1426 Grace of My Heart (1996)
+1427 Drunks (1995)
+1428 SubUrbia (1997)
+1429 Sliding Doors (1998)
+1430 Ill Gotten Gains (1997)
+1431 Legal Deceit (1997)
+1432 Mighty, The (1998)
+1433 Men of Means (1998)
+1434 Shooting Fish (1997)
+1435 Steal Big, Steal Little (1995)
+1436 Mr. Jones (1993)
+1437 House Party 3 (1994)
+1438 Panther (1995)
+1439 Jason's Lyric (1994)
+1440 Above the Rim (1994)
+1441 Moonlight and Valentino (1995)
+1442 Scarlet Letter, The (1995)
+1443 8 Seconds (1994)
+1444 That Darn Cat! (1965)
+1445 Ladybird Ladybird (1994)
+1446 Bye Bye, Love (1995)
+1447 Century (1993)
+1448 My Favorite Season (1993)
+1449 Pather Panchali (1955)
+1450 Golden Earrings (1947)
+1451 Foreign Correspondent (1940)
+1452 Lady of Burlesque (1943)
+1453 Angel on My Shoulder (1946)
+1454 Angel and the Badman (1947)
+1455 Outlaw, The (1943)
+1456 Beat the Devil (1954)
+1457 Love Is All There Is (1996)
+1458 Damsel in Distress, A (1937)
+1459 Madame Butterfly (1995)
+1460 Sleepover (1995)
+1461 Here Comes Cookie (1935)
+1462 Thieves (Voleurs, Les) (1996)
+1463 Boys, Les (1997)
+1464 Stars Fell on Henrietta, The (1995)
+1465 Last Summer in the Hamptons (1995)
+1466 Margaret's Museum (1995)
+1467 Saint of Fort Washington, The (1993)
+1468 Cure, The (1995)
+1469 Tom and Huck (1995)
+1470 Gumby: The Movie (1995)
+1471 Hideaway (1995)
+1472 Visitors, The (Visiteurs, Les) (1993)
+1473 Little Princess, The (1939)
+1474 Nina Takes a Lover (1994)
+1475 Bhaji on the Beach (1993)
+1476 Raw Deal (1948)
+1477 Nightwatch (1997)
+1478 Dead Presidents (1995)
+1479 Reckless (1995)
+1480 Herbie Rides Again (1974)
+1481 S.F.W. (1994)
+1482 Gate of Heavenly Peace, The (1995)
+1483 Man in the Iron Mask, The (1998)
+1484 Jerky Boys, The (1994)
+1485 Colonel Chabert, Le (1994)
+1486 Girl in the Cadillac (1995)
+1487 Even Cowgirls Get the Blues (1993)
+1488 Germinal (1993)
+1489 Chasers (1994)
+1490 Fausto (1993)
+1491 Tough and Deadly (1995)
+1492 Window to Paris (1994)
+1493 Modern Affair, A (1995)
+1494 Mostro, Il (1994)
+1495 Flirt (1995)
+1496 Carpool (1996)
+1497 Line King: Al Hirschfeld, The (1996)
+1498 Farmer & Chase (1995)
+1499 Grosse Fatigue (1994)
+1500 Santa with Muscles (1996)
+1501 Prisoner of the Mountains (Kavkazsky Plennik) (1996)
+1502 Naked in New York (1994)
+1503 Gold Diggers: The Secret of Bear Mountain (1995)
+1504 Bewegte Mann, Der (1994)
+1505 Killer: A Journal of Murder (1995)
+1506 Nelly & Monsieur Arnaud (1995)
+1507 Three Lives and Only One Death (1996)
+1508 Babysitter, The (1995)
+1509 Getting Even with Dad (1994)
+1510 Mad Dog Time (1996)
+1511 Children of the Revolution (1996)
+1512 World of Apu, The (Apur Sansar) (1959)
+1513 Sprung (1997)
+1514 Dream With the Fishes (1997)
+1515 Wings of Courage (1995)
+1516 Wedding Gift, The (1994)
+1517 Race the Sun (1996)
+1518 Losing Isaiah (1995)
+1519 New Jersey Drive (1995)
+1520 Fear, The (1995)
+1521 Mr. Wonderful (1993)
+1522 Trial by Jury (1994)
+1523 Good Man in Africa, A (1994)
+1524 Kaspar Hauser (1993)
+1525 Object of My Affection, The (1998)
+1526 Witness (1985)
+1527 Senseless (1998)
+1528 Nowhere (1997)
+1529 Underground (1995)
+1530 Jefferson in Paris (1995)
+1531 Far From Home: The Adventures of Yellow Dog (1995)
+1532 Foreign Student (1994)
+1533 I Don't Want to Talk About It (De eso no se habla) (1993)
+1534 Twin Town (1997)
+1535 Enfer, L' (1994)
+1536 Aiqing wansui (1994)
+1537 Cosi (1996)
+1538 All Over Me (1997)
+1539 Being Human (1993)
+1540 Amazing Panda Adventure, The (1995)
+1541 Beans of Egypt, Maine, The (1994)
+1542 Scarlet Letter, The (1926)
+1543 Johns (1996)
+1544 It Takes Two (1995)
+1545 Frankie Starlight (1995)
+1546 Shadows (Cienie) (1988)
+1547 Show, The (1995)
+1548 The Courtyard (1995)
+1549 Dream Man (1995)
+1550 Destiny Turns on the Radio (1995)
+1551 Glass Shield, The (1994)
+1552 Hunted, The (1995)
+1553 Underneath, The (1995)
+1554 Safe Passage (1994)
+1555 Secret Adventures of Tom Thumb, The (1993)
+1556 Condition Red (1995)
+1557 Yankee Zulu (1994)
+1558 Aparajito (1956)
+1559 Hostile Intentions (1994)
+1560 Clean Slate (Coup de Torchon) (1981)
+1561 Tigrero: A Film That Was Never Made (1994)
+1562 Eye of Vichy, The (Oeil de Vichy, L') (1993)
+1563 Promise, The (Versprechen, Das) (1994)
+1564 To Cross the Rubicon (1991)
+1565 Daens (1992)
+1566 Man from Down Under, The (1943)
+1567 Careful (1992)
+1568 Vermont Is For Lovers (1992)
+1569 Vie est belle, La (Life is Rosey) (1987)
+1570 Quartier Mozart (1992)
+1571 Touki Bouki (Journey of the Hyena) (1973)
+1572 Wend Kuuni (God's Gift) (1982)
+1573 Spirits of the Dead (Tre passi nel delirio) (1968)
+1574 Pharaoh's Army (1995)
+1575 I, Worst of All (Yo, la peor de todas) (1990)
+1576 Hungarian Fairy Tale, A (1987)
+1577 Death in the Garden (Mort en ce jardin, La) (1956)
+1578 Collectionneuse, La (1967)
+1579 Baton Rouge (1988)
+1580 Liebelei (1933)
+1581 Woman in Question, The (1950)
+1582 T-Men (1947)
+1583 Invitation, The (Zaproszenie) (1986)
+1584 Symphonie pastorale, La (1946)
+1585 American Dream (1990)
+1586 Lashou shentan (1992)
+1587 Terror in a Texas Town (1958)
+1588 Salut cousin! (1996)
+1589 Schizopolis (1996)
+1590 To Have, or Not (1995)
+1591 Duoluo tianshi (1995)
+1592 Magic Hour, The (1998)
+1593 Death in Brunswick (1991)
+1594 Everest (1998)
+1595 Shopping (1994)
+1596 Nemesis 2: Nebula (1995)
+1597 Romper Stomper (1992)
+1598 City of Industry (1997)
+1599 Someone Else's America (1995)
+1600 Guantanamera (1994)
+1601 Office Killer (1997)
+1602 Price Above Rubies, A (1998)
+1603 Angela (1995)
+1604 He Walked by Night (1948)
+1605 Love Serenade (1996)
+1606 Deceiver (1997)
+1607 Hurricane Streets (1998)
+1608 Buddy (1997)
+1609 B*A*P*S (1997)
+1610 Truth or Consequences, N.M. (1997)
+1611 Intimate Relations (1996)
+1612 Leading Man, The (1996)
+1613 Tokyo Fist (1995)
+1614 Reluctant Debutante, The (1958)
+1615 Warriors of Virtue (1997)
+1616 Desert Winds (1995)
+1617 Hugo Pool (1997)
+1618 King of New York (1990)
+1619 All Things Fair (1996)
+1620 Sixth Man, The (1997)
+1621 Butterfly Kiss (1995)
+1622 Paris, France (1993)
+1623 C�r�monie, La (1995)
+1624 Hush (1998)
+1625 Nightwatch (1997)
+1626 Nobody Loves Me (Keiner liebt mich) (1994)
+1627 Wife, The (1995)
+1628 Lamerica (1994)
+1629 Nico Icon (1995)
+1630 Silence of the Palace, The (Saimt el Qusur) (1994)
+1631 Slingshot, The (1993)
+1632 Land and Freedom (Tierra y libertad) (1995)
+1633 � k�ldum klaka (Cold Fever) (1994)
+1634 Etz Hadomim Tafus (Under the Domin Tree) (1994)
+1635 Two Friends (1986)
+1636 Brothers in Trouble (1995)
+1637 Girls Town (1996)
+1638 Normal Life (1996)
+1639 Bitter Sugar (Azucar Amargo) (1996)
+1640 Eighth Day, The (1996)
+1641 Dadetown (1995)
+1642 Some Mother's Son (1996)
+1643 Angel Baby (1995)
+1644 Sudden Manhattan (1996)
+1645 Butcher Boy, The (1998)
+1646 Men With Guns (1997)
+1647 Hana-bi (1997)
+1648 Niagara, Niagara (1997)
+1649 Big One, The (1997)
+1650 Butcher Boy, The (1998)
+1651 Spanish Prisoner, The (1997)
+1652 Temptress Moon (Feng Yue) (1996)
+1653 Entertaining Angels: The Dorothy Day Story (1996)
+1654 Chairman of the Board (1998)
+1655 Favor, The (1994)
+1656 Little City (1998)
+1657 Target (1995)
+1658 Substance of Fire, The (1996)
+1659 Getting Away With Murder (1996)
+1660 Small Faces (1995)
+1661 New Age, The (1994)
+1662 Rough Magic (1995)
+1663 Nothing Personal (1995)
+1664 8 Heads in a Duffel Bag (1997)
+1665 Brother's Kiss, A (1997)
+1666 Ripe (1996)
+1667 Next Step, The (1995)
+1668 Wedding Bell Blues (1996)
+1669 MURDER and murder (1996)
+1670 Tainted (1998)
+1671 Further Gesture, A (1996)
+1672 Kika (1993)
+1673 Mirage (1995)
+1674 Mamma Roma (1962)
+1675 Sunchaser, The (1996)
+1676 War at Home, The (1996)
+1677 Sweet Nothing (1995)
+1678 Mat' i syn (1997)
+1679 B. Monkey (1998)
+1680 Sliding Doors (1998)
+1681 You So Crazy (1994)
+1682 Scream of Stone (Schrei aus Stein) (1991)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6f9d8527/s2core/src/test/resources/user_factors.ann
----------------------------------------------------------------------
diff --git a/s2core/src/test/resources/user_factors.ann b/s2core/src/test/resources/user_factors.ann
new file mode 100644
index 0000000..ad3c663
Binary files /dev/null and b/s2core/src/test/resources/user_factors.ann differ
http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6f9d8527/s2core/src/test/scala/org/apache/s2graph/core/model/FetcherTest.scala
----------------------------------------------------------------------
diff --git a/s2core/src/test/scala/org/apache/s2graph/core/model/FetcherTest.scala b/s2core/src/test/scala/org/apache/s2graph/core/model/FetcherTest.scala
index fb6ff16..54e6763 100644
--- a/s2core/src/test/scala/org/apache/s2graph/core/model/FetcherTest.scala
+++ b/s2core/src/test/scala/org/apache/s2graph/core/model/FetcherTest.scala
@@ -135,7 +135,7 @@ class FetcherTest extends IntegrateCommon{
val stepResult = Await.result(graph.getEdges(query), Duration("60 seconds"))
stepResult.edgeWithScores.foreach { es =>
- println(es.edge)
+ println(es.edge.tgtVertex.innerIdVal)
}
FileUtils.deleteQuietly(new File(localIndexFilePath))
http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6f9d8527/s2jobs/build.sbt
----------------------------------------------------------------------
diff --git a/s2jobs/build.sbt b/s2jobs/build.sbt
index e966fa6..1430500 100644
--- a/s2jobs/build.sbt
+++ b/s2jobs/build.sbt
@@ -32,12 +32,15 @@ libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % spark2Version,
"org.apache.spark" %% "spark-streaming" % spark2Version % "provided",
"org.apache.spark" %% "spark-hive" % spark2Version % "provided",
+ "org.apache.spark" %% "spark-mllib" % spark2Version,
"org.specs2" %% "specs2-core" % specs2Version % "test",
"org.scalatest" %% "scalatest" % "2.2.1" % "test",
"org.apache.hadoop" % "hadoop-distcp" % hadoopVersion,
"org.elasticsearch" % "elasticsearch-spark-20_2.11" % elastic4sVersion,
"com.github.scopt" %% "scopt" % "3.7.0",
- "com.holdenkarau" %% "spark-testing-base" % "2.3.0_0.9.0" % Test
+ "com.holdenkarau" %% "spark-testing-base" % "2.3.0_0.9.0" % Test,
+ "net.pishen" %% "annoy4s" % annoy4sVersion,
+ "org.tensorflow" % "tensorflow" % tensorflowVersion
)
crossScalaVersions := Seq("2.10.6")
http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6f9d8527/s2jobs/src/main/scala/org/apache/s2graph/s2jobs/task/custom/process/ALSAnnoyBuildProcess.scala
----------------------------------------------------------------------
diff --git a/s2jobs/src/main/scala/org/apache/s2graph/s2jobs/task/custom/process/ALSAnnoyBuildProcess.scala b/s2jobs/src/main/scala/org/apache/s2graph/s2jobs/task/custom/process/ALSAnnoyBuildProcess.scala
new file mode 100644
index 0000000..968bf5a
--- /dev/null
+++ b/s2jobs/src/main/scala/org/apache/s2graph/s2jobs/task/custom/process/ALSAnnoyBuildProcess.scala
@@ -0,0 +1,87 @@
+package org.apache.s2graph.s2jobs.task.custom.process
+
+import java.io.File
+
+import annoy4s.{Angular, Annoy}
+import org.apache.hadoop.conf.Configuration
+import org.apache.hadoop.fs.{FileSystem, FileUtil, Path}
+import org.apache.s2graph.s2jobs.task.TaskConf
+import org.apache.spark.ml.recommendation.{ALS, ALSModel}
+import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}
+
+object ALSAnnoyBuildProcess {
+
+ def buildAnnoyIndex(ss: SparkSession,
+ conf: TaskConf,
+ dataFrame: DataFrame): Unit = {
+ // annoy tree params.
+ val outputPath = conf.options("outputPath")
+ val localInputPath = conf.options("localInputPath")
+ val localIndexPath = conf.options("localIndexPath")
+ val numDimensions = conf.options.getOrElse("dimensions", "10").toInt
+
+ // als model params.
+ val rank = conf.options.getOrElse("rank", numDimensions.toString).toInt
+ val maxIter = conf.options.getOrElse("maxIter", "5").toInt
+ val regParam = conf.options.getOrElse("regParam", "0.01").toDouble
+ val userCol = conf.options.getOrElse("userCol", "userId")
+ val itemCol = conf.options.getOrElse("itemCol", "movieId")
+ val ratingCol = conf.options.getOrElse("ratingCol", "rating")
+
+ assert(rank == numDimensions)
+
+ val als = new ALS()
+ .setRank(rank)
+ .setMaxIter(maxIter)
+ .setRegParam(regParam)
+ .setUserCol(userCol)
+ .setItemCol(itemCol)
+ .setRatingCol(ratingCol)
+
+ val model = als.fit(dataFrame)
+
+ saveFeatures(ss, model.itemFactors, outputPath)
+ copyToLocal(ss.sparkContext.hadoopConfiguration, outputPath, localInputPath)
+
+ FileUtil.fullyDelete(new File(localIndexPath))
+
+ Annoy.create[Int](s"${localInputPath}", numDimensions, outputDir = s"$localIndexPath", Angular)
+ }
+
+ def saveFeatures(ss: SparkSession,
+ dataFrame: DataFrame,
+ outputPath: String,
+ idCol: String = "id",
+ featuresCol: String = "features"): Unit = {
+ import ss.sqlContext.implicits._
+
+ val result = dataFrame.map { row =>
+ val id = row.getAs[Int](idCol)
+ val vector = row.getAs[Seq[Float]](featuresCol)
+ (Seq(id) ++ vector).mkString(" ")
+ }
+
+ result.write.mode(SaveMode.Overwrite).csv(outputPath)
+ }
+
+ def copyToLocal(configuration: Configuration,
+ remoteInputPath: String,
+ localOutputPath: String,
+ merge: Boolean = true): Unit = {
+ val fs = FileSystem.get(configuration)
+ val localFs = FileSystem.getLocal(configuration)
+ localFs.deleteOnExit(new Path(localOutputPath))
+
+ if (merge)
+ FileUtil.copyMerge(fs, new Path(remoteInputPath), localFs, new Path(localOutputPath), false, configuration, "")
+ else
+ fs.copyToLocalFile(new Path(remoteInputPath), new Path(localOutputPath))
+ }
+}
+class ALSAnnoyBuildProcess(conf: TaskConf) extends org.apache.s2graph.s2jobs.task.Process(conf) {
+ override def execute(ss: SparkSession, inputMap: Map[String, DataFrame]): DataFrame = ???
+
+ override def mandatoryOptions: Set[String] = Set("outputPath")
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/6f9d8527/s2jobs/src/test/scala/org/apache/s2graph/s2jobs/task/custom/process/ALSAnnoyBuildProcessTest.scala
----------------------------------------------------------------------
diff --git a/s2jobs/src/test/scala/org/apache/s2graph/s2jobs/task/custom/process/ALSAnnoyBuildProcessTest.scala b/s2jobs/src/test/scala/org/apache/s2graph/s2jobs/task/custom/process/ALSAnnoyBuildProcessTest.scala
new file mode 100644
index 0000000..6279e82
--- /dev/null
+++ b/s2jobs/src/test/scala/org/apache/s2graph/s2jobs/task/custom/process/ALSAnnoyBuildProcessTest.scala
@@ -0,0 +1,104 @@
+package org.apache.s2graph.s2jobs.task.custom.process
+
+import java.io.File
+
+import com.holdenkarau.spark.testing.DataFrameSuiteBase
+import com.typesafe.config.ConfigFactory
+import org.apache.commons.io.FileUtils
+import org.apache.s2graph.core.Integrate.IntegrateCommon
+import org.apache.s2graph.core.Management.JsonModel.{Index, Prop}
+import org.apache.s2graph.core.{Query, QueryParam}
+import org.apache.s2graph.core.model.{AnnoyModelFetcher, HDFSImporter, ModelManager}
+import org.apache.s2graph.core.schema.Label
+import org.apache.s2graph.s2jobs.task.TaskConf
+
+import scala.concurrent.{Await, ExecutionContext}
+import scala.concurrent.duration.Duration
+import scala.io.Source
+
+class ALSAnnoyBuildProcessTest extends IntegrateCommon with DataFrameSuiteBase {
+ import scala.collection.JavaConverters._
+
+ // this test require adding movie lens rating data(u.data, movie.txt) under resources
+ // so ignore for now until figure out how to automate download dataset.
+ ignore("RUN ALS on movie lens rating data and build annoy index on itemFeatures, finally query.") {
+ import spark.sqlContext.implicits._
+ val ratingPath = this.getClass.getResource("/u.data").toURI.getPath
+
+ val ratings = Source.fromFile(new File(ratingPath)).getLines().toSeq.map { line =>
+ val tokens = line.split("\t")
+ (tokens(0).toInt, tokens(1).toInt, tokens(2).toFloat)
+ }.toDF("userId", "movieId", "rating")
+
+ val outputPath = "/tmp"
+ val localInputPath = "/tmp/annoy_input"
+ val localIndexPath = "/tmp/annoy_result"
+
+ val taskOptions = Map(
+ "outputPath" -> outputPath,
+ "localInputPath" -> localInputPath,
+ "localIndexPath" -> localIndexPath
+ )
+
+ val conf = TaskConf("test", "test", Nil, taskOptions)
+ ALSAnnoyBuildProcess.buildAnnoyIndex(spark, conf, ratings)
+
+ val labelName = "annoy_model_fetcher_test"
+
+ val remoteIndexFilePath = s"${localIndexPath}/annoy-index"
+ val remoteDictFilePath = this.getClass.getResource(s"/movie.dict").toURI.getPath
+
+ val service = management.createService("s2graph", "localhost", "s2graph_htable", -1, None).get
+ val serviceColumn =
+ management.createServiceColumn("s2graph", "user", "string", Seq(Prop("age", "0", "int", true)))
+
+ val options = s"""{
+ | "importer": {
+ | "${ModelManager.ImporterClassNameKey}": "org.apache.s2graph.core.model.IdentityImporter"
+ | },
+ | "fetcher": {
+ | "${ModelManager.FetcherClassNameKey}": "org.apache.s2graph.core.model.AnnoyModelFetcher",
+ | "${AnnoyModelFetcher.IndexFilePathKey}": "${remoteIndexFilePath}",
+ | "${AnnoyModelFetcher.DictFilePathKey}": "${remoteDictFilePath}",
+ | "${AnnoyModelFetcher.DimensionKey}": 10
+ | }
+ |}""".stripMargin
+
+ Label.findByName(labelName, useCache = false).foreach { label => Label.delete(label.id.get) }
+
+ val label = management.createLabel(
+ labelName,
+ serviceColumn,
+ serviceColumn,
+ true,
+ service.serviceName,
+ Seq.empty[Index].asJava,
+ Seq.empty[Prop].asJava,
+ "strong",
+ null,
+ -1,
+ "v3",
+ "gz",
+ options
+ )
+ val config = ConfigFactory.parseString(options)
+ val importerFuture = graph.modelManager.importModel(label, config)(ExecutionContext.Implicits.global)
+ Await.result(importerFuture, Duration("3 minutes"))
+
+ Thread.sleep(10000)
+
+ val vertex = graph.elementBuilder.toVertex(service.serviceName, serviceColumn.columnName, "Toy Story (1995)")
+ val queryParam = QueryParam(labelName = labelName, limit = 5)
+
+ val query = Query.toQuery(srcVertices = Seq(vertex), queryParams = Seq(queryParam))
+ val stepResult = Await.result(graph.getEdges(query), Duration("60 seconds"))
+
+ stepResult.edgeWithScores.foreach { es =>
+ println(es.edge.tgtVertex.innerIdVal)
+ }
+
+ // clean up temp directory.
+ FileUtils.deleteDirectory(new File(outputPath))
+ }
+
+}