弹性搜索总是返回任何结果

问题描述:

我想测试下面的指令弹性搜索:弹性搜索总是返回任何结果

http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-gsg.html

当我尝试了上面并上传下面的文字,这也是在指令:

{ 
    "index": { 
    "_index": "movies", 
    "_type": "listings", 
    "_id": "2" 
} 
} { 
"director": "Frankenheimer, John", 
"genre": ["Drama", "Mystery", "Thriller"], 
"year": 1962, 
"actor": ["Lansbury, Angela", "Sinatra, Frank", "Leigh, Janet", "Harvey, Laurence", "Silva, Henry", "Frees, Paul", "Gregory, James", "Bissell, Whit", "McGiver, John", "Parrish, Leslie", "Edwards, James", "Flowers, Bess", "Dhiegh, Khigh", "Payne, Julie", "Kleeb, Helen", "Gray, Joe", "Nalder, Reggie", "Stevens, Bert", "Masters, Michael", "Lowell, Tom"], 
"title": "The Manchurian Candidate" 
} { 
"index": { 
    "_index": "movies", 
    "_type": "listings", 
    "_id": "3" 
} 
} { 
"director": "Baird, Stuart", 
"genre": ["Action", "Crime", "Thriller"], 
"year": 1998, 
"actor": ["Downey Jr., Robert", "Jones, Tommy Lee", "Snipes, Wesley", "Pantoliano, Joe", "Jacob, Ir\u00e8ne", "Nelligan, Kate", "Roebuck, Daniel", "Malahide, Patrick", "Richardson, LaTanya", "Wood, Tom", "Kosik, Thomas", "Stellate, Nick", "Minkoff, Robert", "Brown, Spitfire", "Foster, Reese", "Spielbauer, Bruce", "Mukherji, Kevin", "Cray, Ed", "Fordham, David", "Jett, Charlie"], 
"title": "U.S. Marshals" 
} { 
"index": { 
    "_index": "movies", 
    "_type": "listings", 
    "_id": "4" 
} 
} { 
"director": "Ray, Nicholas", 
"genre": ["Drama", "Romance"], 
"year": 1955, 
"actor": ["Hopper, Dennis", "Wood, Natalie", "Dean, James", "Mineo, Sal", "Backus, Jim", "Platt, Edward", "Ray, Nicholas", "Hopper, William", "Allen, Corey", "Birch, Paul", "Hudson, Rochelle", "Doran, Ann", "Hicks, Chuck", "Leigh, Nelson", "Williams, Robert", "Wessel, Dick", "Bryar, Paul", "Sessions, Almira", "McMahon, David", "Peters Jr., House"], 
"title": "Rebel Without a Cause" 
} 

当我使用这个命令后:

curl -XGET 'search-movies-4f3nw7eiia2xiynjr55a2nao2y.us-west-1.es.amazonaws.com/movies/_search?q=Frankenheimer' 

我从来没有得到任何回报。总是返回0。这里是我得到的结果:

enter image description here

我不是,如果我这样做是正确的,但我想我应该能看到至少有一些事情,因为我在导演键有弗兰肯海默json数据上传。任何人都可以阐明它吗?

+0

你刚刚做了一个卷曲-XGET search-movies-4f3nw7eiia2xiynjr55a2nao2y.us-west-1.es.amazonaws.com/ movies/_search'吗?这应确保数据实际上位于索引 –

+0

@JohnVeldboom Intresting。我从来没有尝试过。是的,我明白了。那么为什么我在添加搜索查询时没有收到? –

+0

@JohnVeldboom下面是我尝试你的时候得到的结果:“1”,“timed_out”:false,“_ shards”:{“total”:5,“success”:5,“failed”:0},“hits “:{” 总 “:1,” MAX_SCORE “:1.0,” 命中 “:[{” _索引 “:” 电影”, “_类型”: “电影”, “_ ID”: “1”, “_分数”:1.0 ,“_源”:{“导演”:“伯顿,蒂姆”,“流派”:[“喜剧”,“科幻”],“年份”:1996年,“演员”:[“杰克尼科尔森”,“皮尔斯Brosnan“,”Sarah Jessica Parker“],”title“:”火星攻击!“}}]}} –

尝试使用curl -XGET search-movies-4f3nw7eiia2xiynjr55a2nao2y.us-west-1.es.amazon‌​aws.com/movies/_sear‌​ch搜索整个索引,默认返回前10个结果。如果返回小于10,则数据可能不在索引中。

curl -XGET search-movies-4f3nw7eiia2xiynjr55a2nao2y.us-west-1.es.amazon‌​aws.com/movies/_sear‌​ch?q=director:Burton 

退房的Elasticsearch URI Search的参数的完整列表:

您可以通过更改查询来验证。

+0

感谢你是对的如果我有一些列已经在mysql的问题,我应该抓住列数据我想添加搜索和插入tehm它使用上面的弹性搜索? –

+1

是的,这是正确的。我以前使用Elasticsearch - 工作得很好,你只需要某种工作,将数据索引到ES。建议:1)使用MySQL中最后一次更新的字段,这将允许您只重新索引已更改的数据。2)使用记录的唯一标识MySQL作为ES ID。这将允许您在ES中轻松更新记录。如果你需要更多的帮助,请随时在Twitter上打我@jveldboom –

+0

谢谢所以如果我没有错误,我可能需要使用logstash或者可能是kenisis + lamda来迁移mysql db中的所有数据,而且我也需要在插入到MySQL数据库的同时将发送到mysql db的所有新数据发布到弹性搜索。对吗?第二步看起来不错吗? –