小编Bla*_*ite的帖子

将弹性搜索结果转换为POJO

我有一个使用spring-data-elasticsearch库的项目.我有我的系统返回结果,但我想知道如何以我的域POJO类的形式获得我的结果.

我没有看到太多关于如何实现这一目标的文档,但我不知道我应该使用Google搜索的正确问题.

目前,我的代码看起来像这样,在我的测试中,它检索正确的结果,但不是作为POJO.

    QueryBuilder matchQuery = QueryBuilders.queryStringQuery(searchTerm).defaultOperator(QueryStringQueryBuilder.Operator.AND);

    Client client = elasticsearchTemplate.getClient();

    SearchRequestBuilder request = client
            .prepareSearch("mediaitem")
            .setSearchType(SearchType.QUERY_THEN_FETCH)
            .setQuery(matchQuery)
            .setFrom(0)
            .setSize(100)
            .addFields("title", "description", "department");
    System.out.println("SEARCH QUERY: " + request.toString());

    SearchResponse response = request.execute().actionGet();
    SearchHits searchHits = response.getHits();
    SearchHit[] hits = searchHits.getHits();
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏.

elasticsearch spring-boot spring-data-elasticsearch

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

Ruby正则表达式匹配"foo"和"bar"

遗憾的是我徘徊在需要使用Ruby的正则表达式的情况下.基本上我想在下划线之后和第一个括号之前匹配这个字符串.所以最终结果将是"食盐".

_____ table salt (1)   [F]
Run Code Online (Sandbox Code Playgroud)

像往常一样,我试图用自己和rubular.com来对抗这场战斗.我得到了第一部分

^_____ (Match the beginning of the string with underscores ).
Run Code Online (Sandbox Code Playgroud)

然后我变得更大胆,

^_____(.*?) ( Do the first part of the match, then give me any amount of words and letters after it )
Run Code Online (Sandbox Code Playgroud)

正则表达式已经受够了,并结束了那些废话并将其废弃.所以我想知道stackoverflow上是否有人知道或者对于如何向Ruby Regex解析器说出我的目标有任何暗示.

编辑:谢谢大家,这是我用rubular创建后最终使用的模式.

ingredientNameRegex = /^_+([^(]*)/;
Run Code Online (Sandbox Code Playgroud)

一旦我深呼吸,一切都变得更好,并想到我想说的话.

ruby regex

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

T-SQL:Where子句似乎被忽略

我正在使用SQL Server,它似乎返回在我的谓词中过滤了AGAINST的行.我已经将我的查询缩小到一些小但返回错误数据的东西.

DECLARE @ConnectMagicNumber BIGINT;
SET @ConnectMagicNumber = 4294967296;

SELECT DISTINCT
FLOOR(pe.ID_PE/@ConnectMagicNumber) as 'PE-StaNo',
pe.FName, pe.VName
FROM [dbo].[CRM_CPPE] pe 
WHERE 
-- Predicate below is not being applied
(FLOOR(pe.ID_PE/@ConnectMagicNumber)) > 5000
--
AND pe.FName = 'Augendoppler' OR (pe.FName = 'Batinic' AND pe.VName ='Drasco')
Run Code Online (Sandbox Code Playgroud)

当我明确过滤那些大于5000的那一行时,为什么PE-StaNo为1的那一行会回来.

任何有关我缺少的帮助将不胜感激.我动摇了我无法正确过滤的核心.

错误的SQL查询

sql t-sql sql-server

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

收听输入,单击<input>组件

我使用的是ES6风格的Angular 4.2.2。现在,当用户在字段具有焦点的情况下按ENTER键时,如何使我的代码运行功能时,我感到茫然。

现在,我的html看起来像这样。

  <div class="box" id="redbox" class="app-flex-item"><!-- flex item -->
    <input id="searchTermInput" class="search-input"  ng-keydown="runSearch($event)">
  </div>
Run Code Online (Sandbox Code Playgroud)

我的组件控制器看起来像这样。

@Component({
    ...
})
export class AppComponent {

  runSearch(ev): void {
    console.log("Run Search Invoked");
    this.searchResultService.getHeroesSlowly().then(searchResponseResult => {
        this.searchResponseResult = searchResponseResult;
        this.searchResults = searchResponseResult.searchResults;
        this.showDivider = true;
      }
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,每当我按下ENTER键时,我什至都看不到控制台输出“ Run Search Invoked”。

有谁知道如何监听输入组件上的输入事件?

任何帮助是极大的赞赏。

javascript angular

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

以编程方式在 Angular 4.2.2 中重定向

我正在构建一个玩具应用程序,它有一个默认的搜索页面,然后它有一个管理页面。单击“搜索”页面上的按钮可调用管理页面。我的这个过程的代码是这样的:

  constructor( private searchResultService: SearchService, private router: Router) {
    ....
  }

  goToAdminLogin(ev): void
  {
    this.router.navigate(['adminLogin'])
  }
Run Code Online (Sandbox Code Playgroud)

但是,单击 Button 时唯一会改变的是地址栏。

在我的 app.module.ts 中,我有这个:

RouterModule.forRoot([
  {
    path: 'search',
    redirectTo: '/search',
    pathMatch: 'full'
  },
  {
    path: 'adminLogin',
    component: AdminLoginComponent
  }
])
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我检查了我的控制台,我没有看到它发出任何错误消息。有谁知道为什么我的重定向无处可去?

任何帮助是极大的赞赏。

编辑:添加 AdminLoginComponent:

我的 AdminLoginComponent 如下所示:

import {Component, Inject, Input} from '@angular/core';
import {SearchService} from '../services/search.service';
import {SearchResponse} from '../remote/search-response';

@Component({
  selector: 'admin-login-component',
  templateUrl: './admin-login.component.html',
  styleUrls: ['./admin-login.component.css']
})
export class AdminLoginComponent {

  constructor( private searchResultService: SearchService)  {
  }
}
Run Code Online (Sandbox Code Playgroud)

我的“admin-login.component.html”非常简单,如下所示: …

angular

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

为第一个表行创建CSS,替换其他表

我有一个从另一个应用程序/服务生成的表,我无法修改其布局.我想要CSS第一行有一个样式,然后其他行有交替的样式.主要问题是关于标题和其他行的html没有区别.

<table id="t01">
  <tr>
    <td>Firstname</th>
    <td>Lastname</th> 
    <td>Age</th>
  </tr>
  <tr>
    <td>Jill</td>
    <td>Smith</td>
    <td>50</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td>
    <td>94</td>
  </tr>
  <tr>
    <td>John</td>
    <td>Doe</td>
    <td>80</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我已经在CSS中看到了类似的东西,table > tr:n-child(odd)但那些不起作用.有没有办法让我说"tr:nth-​​child(ODD EXCEPT WHEN = 1)"?

任何帮助是极大的赞赏.这是我想要完成的事情的快照.

在此输入图像描述

编辑:解决方案

这是我解决的解决方案.关键是将first-child选择器放在选择器之后,nth-child(2n + 1)因此标题样式将覆盖迭代样式.我可能会调查:not选择器,但我想再次滚动.

div#tablewrappingdiv> table > tbody tr:nth-child(2n+1) > td{
    background-color: #eee;
}
div#tablewrappingdiv> table > tbody > tr:first-child > td{
    background-color: #006c00;
}           
div#tablewrappingdiv> table > tbody > tr:nth-child(2n + 2) > td{
    background-color: #d8e4bc;
}
Run Code Online (Sandbox Code Playgroud)

html css css-selectors css3

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

Ruby,按键检索子对象

我试图根据其父表中的键检索子对象.例如,我有一个Customer类,其中包含Stores表的"store_id"键.如果客户有"store_id"键,我想带回那个Store对象而不是父Customer对象.

编辑:这是一个sql语句显示我想要做什么.

所以SQL语句看起来像这样.

"SELECT storeS.*FROM FROM INNER JOIN store ON customers.store_id = storeS.id WHERE customers.id ='9'"

我知道sql可能是错误的,但这是一种非常简洁的方式来显示它.

ruby activerecord join inner-join ruby-on-rails-3

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

T-SQL:丑陋的SQL

编辑:只是让大家明白,我并不担心格式化,我担心GROUP By的使用以及聚合字段的使用,因为它没有多大意义.

我的任务是让一些SQL更具可读性.虽然我一般都知道该怎么做,但这个特殊的查询让我感到厌烦.查询的要点涉及作者按一大堆字段进行分组,并将这些字段添加到查询结果中.对于他/她不是GROUP BY的字段,他们使用MIN聚合函数我想"让错误消失"

MIN(ISNULL(dbo.V_CONNECT_ContactPartnerDetail_0010.SAPNr, N'')) AS sapkunr, 
Run Code Online (Sandbox Code Playgroud)

我的困难来自于我可以将GROUP BY填充到CTE中,然后从那里分支出来,但我从来没有得到行计数来匹配我创建的查询和原始查询.任何帮助使这个SQL更具可读性并使其意图更清晰(没有使错误消失的功能)将不胜感激.

SELECT dbo.V_CONNECT_ContactPartnerDetail_0010.ID_FI                    AS firmencode,
       dbo.V_CONNECT_ContactPartnerDetail_0010.ID_KP                    AS partnercode,
       dbo.V_CONNECT_ContactPartnerDetail_0010.Nachname,
       Min(Isnull(dbo.V_CONNECT_ContactPartnerDetail_0010.Vorname, '')) AS vname,
       Min(CASE V_CONNECT_ContactPartnerDetail_0010.Anrede
             WHEN 'Frau' THEN 2
             ELSE 1
           END)                                                         AS anrede,
       Min(Isnull(dbo.V_CONNECT_ContactPartnerDetail_0010.EMail, N''))  AS mail,
       Min(Isnull(dbo.V_CONNECT_ContactPartnerDetail_0010.SAPNr, N''))  AS sapkunr,
       Isnull(dbo.V_CONNECT_ContactPartnerDetail_0010.Titel, N'')       AS titel
FROM   dbo.V_CONNECT_ContactPartnerDetail_0010
       INNER JOIN dbo.V_CONNECT_ContactPartnerPivot
               ON dbo.V_CONNECT_ContactPartnerDetail_0010.ID_C005 = dbo.V_CONNECT_ContactPartnerPivot.ID_C005
       LEFT OUTER JOIN dbo.V_CONNECT_Firmen_PZ_Download
                    ON dbo.V_CONNECT_ContactPartnerDetail_0010.ID_VF = dbo.V_CONNECT_Firmen_PZ_Download.ID_VF
WHERE  ( dbo.V_CONNECT_ContactPartnerDetail_0010.VKO = '0010' )
GROUP  BY dbo.V_CONNECT_ContactPartnerDetail_0010.ID_FI,
          dbo.V_CONNECT_ContactPartnerDetail_0010.ID_KP,
          dbo.V_CONNECT_ContactPartnerDetail_0010.Nachname,
          dbo.V_CONNECT_ContactPartnerDetail_0010.Ort,
          dbo.V_CONNECT_ContactPartnerPivot.flg_spl,
          dbo.V_CONNECT_ContactPartnerPivot.flg_ha,
          dbo.V_CONNECT_ContactPartnerPivot.flg_fu,
          dbo.V_CONNECT_ContactPartnerPivot.flg_ma,
          dbo.V_CONNECT_ContactPartnerPivot.flg_ph,
          Isnull(dbo.V_CONNECT_ContactPartnerDetail_0010.Titel, …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

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