小编wxk*_*vin的帖子

Spring Data Elasticsearch id与_id

我使用弹性版本2.2.0的Spring Data Elasticsearch 2.0.1.

我的DAO类似于:

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;    

@Document(indexName = "myIndex")
public class MyDao {
    @Id
    private String id;

    public String getId() { return id; }
    public void setId(String id) { this.id = id; }

    <other fields, setters, getters omitted>
}
Run Code Online (Sandbox Code Playgroud)

使用存储库将对象保存到ES,_id可以正确填充元数据字段.id字段的getter和setter方法正确返回_id元数据字段的值.但是字段中的id _source字段为空.

2个问题:1)为什么id字段为空?2)id字段为空是否重要?

java elasticsearch spring-data-elasticsearch

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

如何使用Jolt转换数组?

在尝试转换这样的东西时,我为变换后的对象获取了一个空值:

{   
  "employees": [
    { "f_name" : "tom", "l_name" : "smith" },
    { "f_name" : "don", "l_name" : "jones" }
  ]
}
Run Code Online (Sandbox Code Playgroud)

对此:

{
  "employees": [
    { "firstName" : "tom", "lastName" : "smith" },
    { "firstName" : "don", "lastName" : "jones" }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是我使用的规范:

[
  {
    "operation" : "shift",
    "spec" : {
      "employees" : {
        "f_name" : "firstName"
        "l_name" : "lastName"
      }
   }
 ]
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

List<Object> chainrSpecJSON = JsonUtils.classpathToList("path/spec.json");
Chainr chainr = Chainr.fromSpec(chainrSpecJSON);
Object inputJSON = JsonUtils.classpathToObject("path/input.json");

Object transformed …
Run Code Online (Sandbox Code Playgroud)

java json jolt

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

您需要删除 Elasticsearch 别名吗?

似乎无法找到这个问题的简单是或否答案。

当您有一个带有一个或多个别名的索引时,您是否可以删除该索引而不会产生任何负面影响?删除索引也会删除别名吗?在删除索引之前是否应该先删除所有别名?

什么被认为是最佳实践?

elasticsearch

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

XSD 中 msdata:Ordinal 的目的究竟是什么?

我正在查看几个使用 msdata:Ordinal 作为序列中元素的 XSD 文件。我似乎无法在任何地方找到它的用途和/或在什么情况下需要它。有人可以帮我解释一下和举例吗?

xml xsd

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

您是否可以指定在设置自动创建时不将表创建为表?

我有一个使用Hibernate 4.1和Spring 3.1.1的应用程序.我使用Spring的HibernateJpaVendorAdapter并将generateDdl设置为true来创建实体.

我刚刚创建了一个View并创建了一个实体来映射到该视图.视图的实体使用@ Entity,@ Table(名称="ViewName")和@Immutable进行注释.当我部署Web应用程序时,它会自动为所有实体创建表,这些表为应该映射到我的View的实体创建一个表.我必须进入并手动删除该表,然后创建视图.虽然我可以继续这样做,但我想知道是否有办法指定不为特定的"视图"实体创建表.

spring hibernate jpa

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

确定Java中时间范围表示的天数

使用Java 8时间我只想弄清楚时间范围内表示的天数.考虑以下:

LocalDate start = LocalDate.of(2016, Month.MARCH, 28);
LocalDate end = LocalDate.of(2016, Month.MARCH, 31);
Period period = Period.between(start, end);
Run Code Online (Sandbox Code Playgroud)

期间的天数为3,表示两个日期之间的天数,包括开始日期和结束日期.我想要的是两个日期所代表的天数,实际上是4天(3月28日,3月29日,3月30日,3月31日).

我知道我可以加上从Period.between()返回的天数加1,但我想我很惊讶我找不到另一个电话来准确地返回我想要的东西.我错过了什么或者只添加1个解决方案吗?

time date java-8

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

Spring 3.1表单和列表绑定

在搜索和搜索之后,我还没有找到解决方案.

使用Spring 3.1

我有一个表单,我希望用户能够添加多个联系人(poc).在我的JSP中,我有一个用于添加poc的提交按钮.它转到Spring Controller,从域对象获取当前的poc列表(首先是空的),将poc添加到列表中,然后在返回到同一视图之前将域对象放回模型中.然后,用户将最终提交整个页面,该页面将转到控制器并将整个对象保存为持久性.

我已经尝试了各种尝试,并且得出了不同的结果,因为只能添加一个新的poc覆盖现有的poc,而不能在表单上显示输入的poc.我会把我目前的代码.

JSP:

<form:form method="post" commandName="request">

   ...

   <h2>POC:</h2>
   <input type="text" name="newPoc"/>
   <input type="submit" name="addPoc" value="Add POC"/>

   <table>
        ...
        <c:forEach items="${request.pointOfContacts}" var="poc" varStatus="vs">
             <tr>
                 <td><form:label path="pointOfContacts[${vs.index}].name/></td>
                  .....
        </c:forEach>

        ......

    </table>

</form:form>
Run Code Online (Sandbox Code Playgroud)

弹簧控制器:

@RequestMapping(value="/request", method=RequestMethod.POST, param="addPoc")
public Sring addPoc(@RequestParam String newPoc, MyRequest req, Model model) {
   PointOfContact poc = new PointOfContact();
   poc.setName(newPoc);
   List<PointOfContact> pocs = req.getPointOfContacts();
   pocs.add(poc);
   req.setPointOfContacts(pocs);
   model.addAttribute("request", req);
   return "requestForm";
}
Run Code Online (Sandbox Code Playgroud)

域对象

@Entity
public class MyRequest {
   ...

   @OneToMany(Cascade=CascadeType.ALL)
   private List<PointOfContact> pointOfContacts = new ArrayList<PointOfContact>();

   ..... …
Run Code Online (Sandbox Code Playgroud)

spring jsp spring-mvc

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

帮助我理解 log4j 附加程序相对于优先级的可加性

我很困惑为什么 INFO 语句会进入控制台。这是一般设置:

<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out"/>
    <param name="Threshold" value="DEBUG"/>
    <layout .../>
</appender>

<appender name="REST_LOG" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="/logs/rest.log" />
    <param name="Threshold" value="INFO" />
    ....
</appender>

<category name="xyz.web">
    <priority value="WARN" />
    <appender-ref ref="CONSOLE" />
</category>

<category name="xyz.web.rest">
    <priority value="INFO" />
    <appender-ref ref="REST_LOG" />
</category>
Run Code Online (Sandbox Code Playgroud)

所以我希望 INFO 和上面的语句只对 REST_LOG 和 WARN 语句执行,并且上面的语句转到 REST_LOG 和 CONSOLE。我看到的是 REST_LOG 中来自 xyz.web.rest 的 INFO 语句,正如预期的那样,但也在 CONSOLE 中看到来自 xyz.web.rest 的 INFO 语句,这是我没有预料到的。

有人可以解释一下发生了什么事吗?

log4j

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