我正在尝试使用喷射路由和弹性搜索(使用elastic4s)编写一个小的休息api,以提高我的scala级别.这是我的路线定义:
package com.example
import akka.actor.Actor
import spray.routing._
import com.example.core.control.CrudController
class ServiceActor extends Actor with Service {
def actorRefFactory = context
def receive = runRoute(routes)
}
trait Service extends HttpService {
val crudController = new CrudController()
val routes = {
path("ads" / IntNumber) { id =>
get {
ctx =>
ctx.complete(
crudController.getFromElasticSearch
)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的crudController:
class CrudController extends elastic4s
{
def getFromElasticSearch : String = {
val something: Future[SearchResponse] = get
something onComplete {
case Success(p) => println(p) …Run Code Online (Sandbox Code Playgroud) 我有一个文档,我想在elasticSearch上编制索引,这个文档包含一些我事先无法知道的动态密钥,例如下面的例子中的"spanish"或"french"
"contents": {
"title": {
"spanish": "Hola amigos",
"french" : "Bonjour les amis"
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用elastic4s DSL来制作我的映射(通过createIndex DSL),但我无法找到如何使用此库创建基于"匹配"选项的动态映射(如此处所示),为了存储在路径contents.title下的每种语言,指定不同的分析器.
好吗?:-)
我正在尝试在我的EC2实例上部署elasticSearch,但是我收到了这个错误:
[2014-04-04 12:23:30,499][INFO ][node ] [Franklin Hall] version[1.0.1], pid[4516], build[5c03844/2014-02-25T15:52:53Z]
[2014-04-04 12:23:30,500][INFO ][node ] [Franklin Hall] initializing ...
[2014-04-04 12:23:30,531][INFO ][plugins ] [Franklin Hall] loaded [cloud-aws], sites []
{1.0.1}: Initialization Failed ...
- ExecutionError[java.lang.NoClassDefFoundError: org/elasticsearch/ElasticSearchIllegalArgumentException]
NoClassDefFoundError[org/elasticsearch/ElasticSearchIllegalArgumentException]
ClassNotFoundException[org.elasticsearch.ElasticSearchIllegalArgumentException]
Run Code Online (Sandbox Code Playgroud)
当我使用该命令启动ElasticSearch时
sudo bin/elasticsearch -Xss256k -Xmx2048m
Run Code Online (Sandbox Code Playgroud)
这是我安装的版本:
Elastic Search 1.0.1
Elasticsearch-cloud-aws 1.0.0
Run Code Online (Sandbox Code Playgroud)
你们知道出了什么问题吗?