使用Scala/Play中的Solr
如何在Scala/Play中使用Solr?具体如何添加/更新文档?更新:请参阅我的更新答案参考使用Scala/Play中的Solr,scala,solr,playframework,Scala,Solr,Playframework,如何在Scala/Play中使用Solr?具体如何添加/更新文档?更新:请参阅我的更新答案参考 下面是我编写的代码,它使用Play的JSON库和分派HTTP客户端。它并不完美,但它应该可以帮助你开始 package controllers import play.api._ import play.api.mvc._ import play.api.libs.json.Json import play.api.libs.json.Json.toJson import dispatch._
下面是我编写的代码,它使用Play的JSON库和分派HTTP客户端。它并不完美,但它应该可以帮助你开始
package controllers
import play.api._
import play.api.mvc._
import play.api.libs.json.Json
import play.api.libs.json.Json.toJson
import dispatch._
object Application extends Controller {
def index = Action {
val addDocument = Json.toJson(
Map(
"add" ->
Seq(
//a document
Map(
"id" -> toJson("123"),
"subject" -> toJson("you have been served")
)
)
))
val toSend = Json.stringify( addDocument)
val params = Map( "commit" -> "true", "wt" -> "json")
val headers = Map( "Content-type" -> "application/json")
val solr = host( "127.0.0.1", 8983)
val req = solr / "solr" / "update" / "json" <<?
params <:< headers << toSend
val response = Http(req)()
Ok( toSend + response.getResponseBody)
//Redirect(routes.Application.tasks)
}
def tasks = TODO
def newTask = TODO
def deleteTask(id: Long) = TODO
}
包控制器
导入play.api_
导入play.api.mvc_
导入play.api.libs.json.json
导入play.api.libs.json.json.toJson
进口发货_
对象应用程序扩展控制器{
def索引=操作{
val addDocument=Json.toJson(
地图(
“添加“->
序号(
//文件
地图(
“id”->toJson(“123”),
“subject”->toJson(“您已被送达”)
)
)
))
val-toSend=Json.stringify(addDocument)
val params=Map(“提交”->“true”、“wt”->“json”)
val headers=Map(“内容类型”->“应用程序/json”)
val solr=host(“127.0.0.1”,8983)
ValeReq= SoR/SoR(/Surr)/[更新] /“JSON”可以考虑使用SoRJ java LIB,它使用二进制协议与SoRR服务器通信,该服务器比使用XML方式更好。
将文档添加到索引的操作如下:
希望有帮助
Paul与更新文档没有直接关系,但foursquare在其工程博客文章中描述了Solr在Scala build中的良好查询DSL:可能重复@phadej,这是前面的问题