小编Nik*_*ita的帖子

ElasticSearch:在对象数组中搜索

我在查询数组中的对象时遇到问题.让我们创建一个非常简单的索引,添加一个带有一个字段的类型,并添加一个带有对象数组的文档(我使用感应控制台):

PUT /test/
PUT /test/test/_mapping
{
    "test": {
        "properties": {
            "parent": {"type": "object"}
        }
    }
}
Post /test/test
 {
     "parent": [
                  {
                     "name": "turkey",
                     "label": "Turkey"
                  },
                  {
                     "name": "turkey,mugla-province",
                     "label": "Mugla (province)"
                  }
               ]
 }   
Run Code Online (Sandbox Code Playgroud)

现在我想通过这两个名称进行搜索"turkey""turkey,mugla-province".第一个查询工作正常:

GET /test/test/_search {"query":{ "term": {"parent.name": "turkey"}}}

但第二个没有回报:

GET /test/test/_search {"query":{ "term": {"parent.name": "turkey,mugla-province"}}}

我尝试了很多东西,包括:

 "parent": {
              "type": "nested",
              "include_in_parent": true,
              "properties": {
                 "label": {
                    "type": "string",
                    "index": "not_analyzed"
                 },
                 "name": {
                    "type": "string",
                    "store": true
                 }
              }
           }
Run Code Online (Sandbox Code Playgroud)

但没有任何帮助.我错过了什么?

search-engine elasticsearch

11
推荐指数
2
解决办法
2万
查看次数

找不到require-from-string@^1.1.0的匹配版本

npm项目的依赖关系:

"dependencies": {
    "angular-chart.js": "1.1.0",
    "angular-cookies": "1.5.7",
    "angular-ui-bootstrap": "2.4.0",
    "angular-ui-grid": "4.0.5",
    "checklist-model": "0.10.0",
    "json-schema": "0.2.2"
  }
Run Code Online (Sandbox Code Playgroud)

npm install停止使用以下错误:

npm ERR! code ETARGET
npm ERR! notarget No matching version found for require-from-string@^1.1.0
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget 
npm ERR! notarget It was specified as a dependency of 'cosmiconfig'
npm ERR! notarget 
Run Code Online (Sandbox Code Playgroud)

怎么解决?

npm angularjs bower npm-install

9
推荐指数
1
解决办法
1995
查看次数

postgres r2dbc-pool 的连接池大小

我无法使用 spring-webflux 和 r2dbc (使用 r2dbc-pool driver 0.8.0.M8)打开超过 10 个连接。我的配置如下:

@Configuration
public class PostgresConfig extends AbstractR2dbcConfiguration {

  @Override
  @Bean
  public ConnectionFactory connectionFactory() {
    ConnectionFactory connectionFactory = ConnectionFactories.get(ConnectionFactoryOptions.builder()
        .option(DRIVER, "pool")
        .option(PROTOCOL, "postgresql")
        .option(HOST, host)
        .option(USER, user)
        .option(PASSWORD, password)
        .option(DATABASE, database)
        .build());
    ConnectionPoolConfiguration configuration = ConnectionPoolConfiguration.builder(connectionFactory)
        .maxIdleTime(Duration.ofMinutes(30))
        .initialSize(initialSize)
        .maxSize(maxSize)
        .maxCreateConnectionTime(Duration.ofSeconds(1))
        .build();
    return new ConnectionPool(configuration);
  }
}
Run Code Online (Sandbox Code Playgroud)

当我指定超过 10 个连接时,我会收到如下错误:

org.springframework.dao.DataAccessResourceFailureException: 
Failed to obtain R2DBC Connection; nested exception is 
java.util.concurrent.TimeoutException: 
Did not observe any item or terminal signal within 1000ms in 'lift' …
Run Code Online (Sandbox Code Playgroud)

java spring-webflux r2dbc

7
推荐指数
2
解决办法
2万
查看次数

如何在spring-data 2.0.x中创建RedisCacheManager

我正在将我的应用程序从spring boot 1.5.x迁移到2.0.x. 我想保持jedis,但我的实例化有问题RedisCacheManager.

现在构造函数签名是

RedisCacheManager(RedisCacheWriter cacheWriter, RedisCacheConfiguration defaultCacheConfiguration)
Run Code Online (Sandbox Code Playgroud)

但在此之前:

RedisCacheManager(RedisOperations redisOperations)
Run Code Online (Sandbox Code Playgroud)

我定义这个bean只RedisTemplate在范围内:

@Bean
public RedisCacheManager redisCacheManager(RedisTemplate redisTemplate) {
    HandleRedisCacheManager redisCacheManager = new HandleRedisCacheManager(redisTemplate);
    redisCacheManager.setUsePrefix(true);
    return redisCacheManager;
}
Run Code Online (Sandbox Code Playgroud)

它应该如何创建呢?

java redis jedis spring-data spring-boot

5
推荐指数
2
解决办法
6731
查看次数

在EitherT上留下flatMap

假设我有返回的函数,Future[Either[_, _]我想在失败的情况下应用其中的一些函数,这意味着只将它们应用于左侧.简化的例子是:

def operation1: Future[Either[String, Int]] = Future.successful(Right(5))
def operation2: Future[Either[String, Int]] = Future.successful(Left("error"))
def operation2FallBackWork = Future.successful{
  println("Doing some revert stuff")
  Left("Error happened, but reverting was successful")
}

val res = for {
  res1 <- EitherT.fromEither(operation1)
  res2 <- EitherT.fromEither(operation2)//.leftFlatMap(operation2FallBackWork) -????
} yield res1 + res2

Await.result(res.toEither, 5 seconds)
Run Code Online (Sandbox Code Playgroud)

怎么实现呢?

scala monad-transformers scalaz

3
推荐指数
1
解决办法
834
查看次数

使用 http4s 打开 Websocket 连接

我正在运行 http4s WS 示例:https : //github.com/http4s/http4s/blob/master/examples/blaze/src/main/scala/com/example/http4s/blaze/BlazeWebSocketExample.scala

我正在尝试从 google chrome 控制台连接到它:

var ws = new WebSocket("ws://localhost:8080/http4s/wsecho")
ws.send("Hi")
Run Code Online (Sandbox Code Playgroud)

但实际上我看不到任何消息。在控制台日志中我看到

Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.
    at <anonymous>:1:4
(anonymous) @ VM204:1
VM186:1 WebSocket connection to 'ws://localhost:8080/http4s/wsecho' failed: Connection closed before receiving a handshake response
Run Code Online (Sandbox Code Playgroud)

并且服务器日志不包含错误:

23:12:43 [blaze-nio1-acceptor] INFO  o.h.blaze.channel.ServerChannelGroup - Connection to /127.0.0.1:59777 accepted at Tue Mar 20 23:12:43 GST 2018.
23:12:43 [blaze-nio-fixed-selector-pool-3] DEBUG org.http4s.blaze.pipeline.Stage - SocketChannelHead starting up at Tue Mar 20 23:12:43 GST 2018 …
Run Code Online (Sandbox Code Playgroud)

scala websocket http4s

1
推荐指数
1
解决办法
1569
查看次数