我有一个使用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)
任何帮助是极大的赞赏.
遗憾的是我徘徊在需要使用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)
一旦我深呼吸,一切都变得更好,并想到我想说的话.
我正在使用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的那一行会回来.
任何有关我缺少的帮助将不胜感激.我动摇了我无法正确过滤的核心.
我使用的是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”。
有谁知道如何监听输入组件上的输入事件?
任何帮助是极大的赞赏。
我正在构建一个玩具应用程序,它有一个默认的搜索页面,然后它有一个管理页面。单击“搜索”页面上的按钮可调用管理页面。我的这个过程的代码是这样的:
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”非常简单,如下所示: …
我有一个从另一个应用程序/服务生成的表,我无法修改其布局.我想要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) 我试图根据其父表中的键检索子对象.例如,我有一个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可能是错误的,但这是一种非常简洁的方式来显示它.
编辑:只是让大家明白,我并不担心格式化,我担心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) angular ×2
ruby ×2
sql-server ×2
t-sql ×2
activerecord ×1
css ×1
css3 ×1
html ×1
inner-join ×1
javascript ×1
join ×1
regex ×1
spring-boot ×1
sql ×1