Недопустимая ошибка Json при создании индекса Elasticsearch с astic4s в игровой среде
Я пытаюсь создать индекс, как показано ранее, но всегда получаю эту ошибку: Неверный запрос Для запроса 'POST /initIndex' [Invalid Json]
Я использую astic4s с Play Framework 2.3.x и Scala 2.11.
import com.sksamuel.elastic4s.{ElasticClient, ElasticsearchClientUri, FrenchLanguageAnalyzer}
import com.sksamuel.elastic4s.ElasticDsl._
import com.sksamuel.elastic4s.mappings.FieldType._
import models.tools.Tool
import org.elasticsearch.action.get.GetResponse
import org.elasticsearch.action.search.SearchResponse
import scala.concurrent.Future
object ToolsDaoImpl {
private val uri: ElasticsearchClientUri = ElasticsearchClientUri("elasticsearch://localhost:9200")
private val client = ElasticClient.remote(uri)
def createIndex {
client execute {
create index name mappings (
"tool" as (
"id" typed IntegerType,
"title" typed StringType analyzer FrenchLanguageAnalyzer,
"description" typed StringType analyzer FrenchLanguageAnalyzer
)
)
}
}
def findById(toolId: Long): Future[GetResponse] = client.execute {
get id toolId from "tools/tool"
}
def findByName(name: String): Future[SearchResponse] = client.execute {
search in "tools/tool" query name
}
def initIndex {
client.execute {
index into "tools/tool" doc Tool(id = 1L, title = "Marteau", description = "Peut être utilisé pour differents travaux")
index into "tools/tool" doc Tool(id = 1L, title = "Perceuse", description = "Placoplatre et béton")
}
}
}
case class Tool(id: Long, title: String, city: String, description: String) extends DocumentMap {
override def map: Map[String, Any] = Map("id" -> id, "title" -> title, "description" -> description)
}
И он вызывается прямо из контроллера. Ничего больше
Любая идея?
Заранее спасибо.
Изменить: я попробовал этот код в простом приложении Scala (основной), и он работает. Что может быть причиной?
2 ответа
Поскольку приведенный выше код не был проблемой, я думаю, что это связано с вашими Reads или JSON, которые вы отправляете - пожалуйста, предоставьте более подробную информацию о модели, которую вы ожидаете, и Reads
Возможно, ваш пример неполон, но из приведенного выше кода у вас есть две открытые фигурные скобки и одна закрытая фигурная скобка.