Play2-Elasticsearch: 快速、高效的Elasticsearch集成框架

Play2-Elasticsearch: 快速、高效的Elasticsearch集成框架

play2-elasticsearchElasticsearch module for PlayFramework 2.x applications项目地址:https://gitcode.com/gh_mirrors/pl/play2-elasticsearch

Play2-Elasticsearch是一个用于集成ElasticsearchPlay Framework 2.x应用程序的高效、灵活的框架。

项目简介

该项目的目标是简化在Play应用中与Elasticsearch之间的交互,提供简单易用的API,使开发人员能够更专注于实现业务逻辑。通过使用Play2-Elasticsearch,您可以快速地在您的应用中实现搜索、索引和分析功能。

功能特性

  1. 类型安全:使用Scala强大的类型系统提供类型安全的操作。
  2. 异步操作:基于 Akka Streams 和 CompletableFuture 的支持,实现异步、非阻塞操作。
  3. 易于使用:简洁、直观的 API 设计,让开发者快速上手。
  4. 自定义配置:支持自定义 Elasticsearch 集群连接参数和客户端配置。
  5. 多种操作:提供了丰富的 CRUD 操作及聚合查询方法。

示例用法

以下是一些简单的示例,展示如何使用 Play2-Elasticsearch 在 Play 应用程序中创建文档和执行搜索。

首先,确保已添加依赖:

libraryDependencies += "com.cleverage" %% "play2-elasticsearch" % "0.16.0"

然后,在模型类中使用@Document注解:

import play.api.libs.json._
import com.cleverage.elasticsearch.model.Document
import reactivemongo.bson._

@Document(index = "test", type = "doc")
case class TestDoc(id: Option[BSONObjectID], name: String, age: Int)

object TestDoc {
  implicit val format: Format[TestDoc] = Json.format[TestDoc]
}

接下来,编写一个控制器来处理 CRUD 操作:

import javax.inject._
import akka.stream.Materializer
import com.cleverage.elasticsearch.action.index._
import com.cleverage.elasticsearch.action.search._
import play.api.mvc._
import scala.concurrent.ExecutionContext.Implicits.global

@Singleton
class DocController @Inject()(cc: ControllerComponents)(implicit mat: Materializer)
    extends AbstractController(cc) {

  def create() = Action.async { implicit request =>
    val doc = TestDoc(None, "John Doe", 30)
    IndexAction[TestDoc].create(doc).map(_ => Ok("Document created"))
  }

  def search(query: Option[String]) = Action.async { implicit request =>
    val queryFilter = query.map(q => Query.Bool.filter(Query.Terms("name", q)))
    val searchRequest = SearchRequest[TestDoc](queryFilter).limit(10)
    SearchAction[TestDoc].execute(searchRequest).map(_.hits.hits.map(_.source)).map hits =>
      Ok(Json.toJson(hits))
  }
}

现在你可以尝试访问控制器中的 create()search() 方法以体验 Play2-Elasticsearch 提供的功能。

项目链接

赶快尝试 Play2-Elasticsearch,为您的 Play 应用程序带来更强大的搜索引擎和数据分析能力吧!

play2-elasticsearchElasticsearch module for PlayFramework 2.x applications项目地址:https://gitcode.com/gh_mirrors/pl/play2-elasticsearch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋玥多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值