0
と組み合わせた場合rangequeryフィルタが失敗した私は、日付の間でデータをフィルタリングするNativeSearchQueryBuilderを使用しながら、multiMatchQuery
Calendar compareDate = Calendar.getInstance();
compareDate.add(Calendar.DATE, 14);
SearchQuery query = new NativeSearchQueryBuilder().withIndices("project")
.withPageable(new PageRequest(offset, limit))
.withFilter(rangeQuery("startDate").from(new Date().getTime()).to(compareDate.getTime()))
.withFilter(multiMatchQuery(string,
new String[] { "name","platform", "department", "url"}).build();
を文字列とrangequeryを検索するmultiMatchQueryを使用してデータを取得したいここで私はElasticSearchに照会しようとしていますHI
日付フィルタクエリが失敗し、古い日付のデータが表示されます。私はまだ古い日付を持っているbooleanQueryBuilderを使用してみました。 multiMatchQueryを使わずにrangeQueryフィルターを使用すると、正しいデータが得られます。なぜこの組み合わせがうまくいかないのでしょうか? springdataを使用して回避する方法はありますか?
私の文書は、あなたが悪いという名前で、基本的にpost_filter
ですwithQuery()
代わりのwithFilter()
を使用する必要があり、この
{
"categories": [
{
"id": "ee625703-6103-6f94-b246-ff00003e0ef8",
"name": "Networking"
}
],
"id": "PROJECT_69ee95dcb88547e388491328bbb6fdcc",
"hostContentId": "69ee95dc-b885-47e3-8849-1328bbb6fdcc",
"orgName": "Parinati Solutions",
"title": "Parinati Solutions: Kansas City",
"summary": "Parinati Solutions this is a test project name...",
"categoryUrls": "networking",
"startDate": 1512572400000,
"endDate": 1512576000000,
"friendlyDates": "Dec 6 @ 9:00 am - 10:00 am",
"friendlyLocation": "Test local Foundation, Kansas City, MO",
"providerSearchId": "9b89acbc-2d03-4526-860c-2a71f891be4b",
"contentProvider": "sourcelink",
"contentType": "PROJECT",
"linkedinProfileUrl": null,
"allowMemberContact": null,
"firstName": null,
"lastName": null,
"expertise": null,
"twitterHandle": null,
"interests": null,
"tagLine": null,
"searchResultId": "9b89acbc-2d03-4526-860c-2a71f891be4b"
}
SEARCHQUERYクエリ=新しいNativeSearchQueryBuilder()withIndices( "プロジェクト") \t \t \t \t .withPageable(新PageRequest(オフセットリミット)) \t .withQuery(QueryBuilders.boolQuery()。なければならない(multiMatchQuery(文字列、新しいString [] { "名前"、 "プラットフォーム"、 "部署"、 "URL"})) \t \t \t \t .filter (rangeQuery( "startDate")。from(新しいDate()。getTime())。to((compareDate.getTime()。getTime())))。 – Suyash
私は上記を試しました。しかし、結果が返ってこなかった – Suyash
生成されたクエリを取得して、それがどのように見えるかを確認できますか?ドキュメントが返されない場合は、結果に期待するドキュメントを表示して、必要なものを修正します。 – Val