从斯卡拉使用的Solr /播放(Using Solr from Scala/ Play)

2019-09-22 19:09发布

如何从内斯卡拉使用的Solr /播放? 具体如何添加/更新文件?

Answer 1:

更新:看看我的新答案参考https://stackoverflow.com/a/17315047/604511


下面是代码,我写它使用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

}


Answer 2:

你可能会考虑使用SolrJ的Java库,它采用了二进制协议与Solr的服务器,该服务器的性能比使用XML的方式更好地沟通。

将文档添加到索引中做到了这一点:

http://wiki.apache.org/solr/Solrj#Adding_Data_to_Solr

希望帮助

保罗



Answer 3:

不直接相关的更新文件,但在斯卡拉一个很好的查询的DSL的Solr由四方建立在他们的工程博客文章中描述: http://engineering.foursquare.com/2011/08/29/slashem-a-rogue-like型安全-斯卡拉-DSL换查询-的Solr /



Answer 4:

你可以玩框架在斯卡拉按照本文中的步骤整合Apache Solr实现, 还有一个例子 。



文章来源: Using Solr from Scala/ Play