小编use*_*779的帖子

聚合仅匹配ElasticSearch中的嵌套对象值

我只需要对与查询匹配的嵌套对象的值求和.看起来ElasticSearch确定与查询匹配的文档,然后对所有嵌套对象求和.从下面的大纲我想搜索nestedobjects.objtype ="A"并获取objvalue的总和仅用于匹配嵌套对象,我想得到值4.这可能吗?如果是这样,怎么样?

这是映射

{
  "myindex": {
    "mappings": {
      "mytype": {
        "properties": {
           "nestedobjects": {
             "type": "nested",
             "include_in_parent": true,
             "properties": {
               "objtype": {
                 "type": "string"
               },
               "objvalue": {
                 "type": "integer"
               }
             }
           }
         }
       }
     }
   }
 }
Run Code Online (Sandbox Code Playgroud)

这是我的文件

PUT /myindex/mytype/1
{
  "nestedobjects": [
    { "objtype": "A", "objvalue": 1 },
    { "objtype": "B", "objvalue": 2 }
  ]
}
PUT /myindex/mytype/2
{
  "nestedobjects": [
    { "objtype": "A", "objvalue": 3 },
    { "objtype": "B", "objvalue": 3 }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是我的查询代码.

POST allscriptshl7/_search?search_type=count
{ …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

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

使用Json.Net序列化NameValueCollection的自定义子类

我有以下类我尝试序列化到Json失败了.

class HL7 : NameValueCollection
{
  public List<HL7> Children { get; set; }
  public HL7()
  {
    Children = new List<HL7>();
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经创建了这样的对象并向其添加了数据:

HL7 hl7 = new HL7();
hl7.Add("a", "123");
hl7.Add("b", "456");
hl7.Children.Add(new HL7());
hl7.Children[0].Add("c", "123");
hl7.Children[0].Add("d", "456");
Run Code Online (Sandbox Code Playgroud)

我打电话的时候

JsonConvert.SerializeObject(hl7)
Run Code Online (Sandbox Code Playgroud)

我收到

["a","b"]
Run Code Online (Sandbox Code Playgroud)

我期待以下内容:

{
  "a": "123",
  "b": "456",
  "Children": [
    {
      "c": "123",
      "d": "456",
    }
  ]
} 
Run Code Online (Sandbox Code Playgroud)

json.net

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

WCF异步回调

我已经在我的代码中成功实现了WCF回调模式,现在我想实现一个异步回调.这是我的界面代码:

[ServiceContract(Name = "IMessageCallback")]
public interface IMessageCallback
{
  [OperationContract(IsOneWay = true)]
  void OnMessageAdded(string message, DateTime timestamp);
}

[ServiceContract(Name="IMessageCallback")]
public interface IAsyncMessageCallback
{
  [OperationContract(AsyncPattern = true)]
  IAsyncResult BeginOnMessageAdded(string msg, DateTime timestamp, AsyncCallback callback, object asyncState);
  void EndOnMessageAdded(IAsyncResult result);
}

[ServiceContract(CallbackContract = typeof(IMessageCallback))]
public interface IMessage
{
  [OperationContract]
  void AddMessage(string message);
}
Run Code Online (Sandbox Code Playgroud)

要使用同步回调,我声明了我的通道和端点,如下所示:

DuplexChannelFactory<IMessage> dcf = new DuplexChannelFactory<IMessage>(new InstanceContext(this), "WSDualHttpBinding_IMessage");
<endpoint address="net.tcp://localhost:8731/Message/"
            binding="netTcpBinding"
            contract="WCFCallbacks.IMessage" name="WSDualHttpBinding_IMessage">
Run Code Online (Sandbox Code Playgroud)

我无法获得端点和通道的正确组合以利用异步回调.有人能指出我正确的方向吗?

此外,当执行以下代码行时:

OperationContext.Current.GetCallbackChannel<IAsyncMessageCallback>();
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Unable to cast transparent proxy to type 'WCFCallbacks.IAsyncMessageCallback'
Run Code Online (Sandbox Code Playgroud)

.net wcf asynchronous callback

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

与Solr动态字段相比,Elasticsearch动态映射

在Solr中,我可以定义一个动态字段并将其绑定到特定的数据类型.在以下示例中,以"dt"结尾的索引文档中的所有字段都将被索引为long. <dynamicField name="*_dt" stored="true" indexed="true" type="long" multiValued="true"/>

在ElasticSearch中,知道字段的名称,我可以使用"映射"中的"属性"子节点将字段索引到特定类型. "properties": { "msh_datetimeofmessage_hl7_dt": { "type": "date", "format": "YYYYMMddHHmmss" },

我尝试了以下操作并尝试使用模板,但未成功. "properties": { "*_dt": { "type": "date", "format": "YYYYMMddHHmmss" },

ElasticSearch是否提供与Solr相同的功能,如上所述?

提前致谢.

solr elasticsearch

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

Swagger可以生成Java枚举吗?

我有以下Swagger定义,我希望swagger-codegen会生成Java Enum类。我浏览过swagger论坛,看起来swagger-codegen应该生成正确的Java代码。

"definitions": {
  "AnalystScoreEnum": {
    "type": "string",
    "enum": [
      "POOR",
      "AVERAGE"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

swagger-codegen输出的内容如下:

package io.swagger.client.model;

import io.swagger.annotations.*;
import com.fasterxml.jackson.annotation.JsonProperty;

@ApiModel(description = "")
public class AnalystScoreEnum  {

  @Override
  public String toString()  {
    StringBuilder sb = new StringBuilder();
    sb.append("class AnalystScoreEnum {\n");

    sb.append("}\n");
    return sb.toString();
  }
}
Run Code Online (Sandbox Code Playgroud)

我期望/想要的是:

public enum AnalystScoresEnum {
  POOR(1),
  AVERAGE(2)

  private int value;
  private AnalystScoresEnum(int value) {
    this.value = value;
  }
  public int getValue() {
    return value;
  }
}
Run Code Online (Sandbox Code Playgroud)

java enums swagger swagger-editor

5
推荐指数
0
解决办法
852
查看次数

SVN项目结构

我们正在从VSS迁移到SVN并正在讨论项目结构.我们正在讨论下面显示的两个提案.

由于项目发布版本与标签绑定,开发人员只需要对该标签执行更新即可立即开始工作,因此开发支持似乎更简单.

第2号确保所有项目和依赖项都可以独立开发,但构建特定版本版本意味着了解项目的标签及其所有依赖项.

这两者之间有明显的比较效益吗?两个结构中的任何陷阱?还是有更好的结构?

1.
Development  
  + trunk  
    Project1  
    Project2  
    Dependency1  
    Dependency2  
    Dependency3  
  + branches  
  + tags  

2.
Project1  
  + trunk  
  + branches  
  + tags  
Project2  
  + trunk  
  + branches  
  + tags  
Dependency1  
  + trunk  
  + branches  
  + tags  
Dependency2  
  + trunk  
  + branches  
  + tags  
Dependency3  
  + trunk  
  + branches  
  + tags  

svn structure project

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

如何在AWS实例上公开ElasticSearch?

我在AWS实例上安装了ElasticSearch,并从另一个AWS实例成功测试了它.我想在远程计算机上使用.Net应用程序将我的数据加载到ElasticSearch.

如何配置我的AWS实例以允许从远程计算机通过TCP端口9200进行连接?我已经验证iptables已关闭,ES进程绑定到0.0.0.0.

提前致谢.

amazon-ec2 elasticsearch

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

Laravel hasManyThrough对中间模型有约束

嗨,我的实体之间有以下关系.

User
  - id
  - other stuff
NeighborhoodFilter
  - id
  - userId
  - neighborhoodId
  - isActive
Neighborhood
  - id
  - other stuff
Run Code Online (Sandbox Code Playgroud)

我想为我的User对象编写一个方法,该方法将返回UserFilter中isActive = 1表示User所属的所有邻域.

我尝试过以下但我不知道在哪里放置约束'isActive = 1'.有任何想法吗?

public function neighborhoods()
{
    return $this->hasManyThrough('Neighborhood', 'NeighborhoodFilter', 'userId', 'id');
}
Run Code Online (Sandbox Code Playgroud)

php laravel

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

SQL Server - 将表数据转换为xml

嗨,我有以下表格数据,我需要在SQl服务器中转换为Xml.有任何想法吗?

提前致谢

Party_Id  HomePhoneNumber  WorkPhoneNumber
62356     6314993578    
62356                      6314590922
62356                      6313795488
Run Code Online (Sandbox Code Playgroud)

<HomePhoneNumber>6314993578</HomePhoneNumber>
<WorkPhoneNumber>6314590922</WorkPhoneNumber>
<WorkPhoneNumber>6313795488</WorkPhoneNumber>
Run Code Online (Sandbox Code Playgroud)

xml t-sql sql-server

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

改进.Net中的String.Insert?

我需要标记一个字符串,其中包含指示已通过测试的子字符串的开头和结尾的标识符.

假设我有一个字符串"快速的棕色狐狸跳过懒狗",我想用字符'b'和'o'开头的每个单词标记字符串.最后的字符串看起来像"快速<tag>brown</tag>狐狸跳<tag>over</tag>懒狗".

使用正则表达式和LINQ的组合我有正确的逻辑来完成我想要的但我的性能不是我想要的,因为我使用String.Insert插入标签.我们的字符串可以很长(> 200k),标记的子字符串数可以接近一百.下面是我用来插入标签的代码.鉴于我知道每个子字符串的开始和长度,如何更快地更新字符串'input'?

.ForEach<Match>(m => {
  input = input.Insert(m.Index + m.Length, "</tag>");
  input = input.Insert(m.Index, "<tag>");
});
Run Code Online (Sandbox Code Playgroud)

.net c# string

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

VMWare虚拟机环境中的多线程

我们通过在单独的虚拟机中运行单线程应用程序来扩展它-每个实例都配置为在整体工作负载的特定分区上工作。尽管我们不会消除当前对vm的依赖,但一直有一种想法是,可以通过在应用的某些部分添加线程来获得更好的性能。

为虚拟机环境设计的应用程序的架构线程与为非虚拟机环境设计的应用程序的架构线程是否不同?我主要关心的是,对于设计到应用程序中的每个线程,每台计算机可能启动的实际线程数是计算机上运行的vm实例数的函数,并且实际上可能导致性能下降。

提前致谢。

编辑:上面的vm是指VMWare提供的虚拟机。

vmware multithreading virtual-machine

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

ElasticSearch - 映射中的日期时间格式无效

我的映射中有以下动态模板。

 "dt": {
    "match": "*Time",
    "mapping": {
       "type": "date",
       "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-ddTHH:mm:ssZ"
    }
 }
Run Code Online (Sandbox Code Playgroud)

然而,当我插入带有“BirthTime”:“1992-05-06T00:00:00Z”的文档时,我收到以下错误:

"type":"illegal_argument_exception","reason":"Invalid format: [yyyy-MM-ddTHH:mm:ssZ]: Illegal pattern component: T"
Run Code Online (Sandbox Code Playgroud)

我认为我的日期时间格式是 ES 应该立即理解的 ISO 标准。我的映射格式应该是什么来支持 BirthTime?

提前致谢。

elasticsearch

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

在SQL中实现排序键

我们使用具有名为docid的列和名为parentid的列的表来存储Oracle数据库中的文档之间的关系.如果我有一个与子文档相关的文档doc1,child1_1和child1_2,它们将由Documents表中的以下记录表示.

docid  parentid
1000   null    record for doc1
1001   1000    "       "  child1_1
1002   1000    "       "  child1_2
Run Code Online (Sandbox Code Playgroud)

Documents表可以包含数百万行,因此为了确保所有相关文档在我们的UI中组合在一起,我们使用名为sortedfamily的索引varchar列对Documents表进行预排序,并使用相关文档的docids的连接对其进行填充. .如果不使用sortedfamily列,则在查询时对记录进行排序太慢.上面显示的记录成为.

docid  parentid  sortedfamily
1000   null      1000           record for doc1
1001   1000      1000_1001      "       "  child1_1
1002   1000      1000_1002      "       "  child1_2
Run Code Online (Sandbox Code Playgroud)

这允许我们将"ordered by sortedfamily"添加到我们的查询中,并且返回的记录将始终按相关文档排序.我上面概述的工作非常好,但它有一些与文档族层次深度相关的限制,并且感觉奇怪的连接整数来对记录进行排序.有没有办法只使用整数执行上述操作?

提前致谢.

更新:我上面的例子不够详细.孩子们自己也可能有相关文件.如果child1_1具有相关文档,则sortedfamily的结果值可能是"1000_1001_2000".

sql oracle

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