Использование Hibernate Search 5.9 и эластичного сервера 5.6.10.
Я пытаюсь сохранить данные из 3 полей в одно поле с аннотацией @Transient.Но хотя поля отображаются в структуре индекса, то же самое не отображается при запросе индекса с помощью curl / chrome.Его нет в индексе, и данные теряются таким образом.
Database column: Data
a. address: 123, a street, city, state
Fillr1 : 000
Fillr2: 0
Fillr3: 358
b. address: 234, a street, city, state
Fillr1 : 000
Fillr2: 0
Fillr3: 258
b. address: 567, a street, city, state
Fillr1 : 000
Fillr2: 0
Fillr3: 005
Я хочу объединить / или, возможно, нет и сравнить три поля Fillr1 + Fillr2 + Fillr3 с массивом входных данных, полученных от внешнего интерфейсаприложение.Предположим, что входной массив содержит данные как:
[0000004, 0000005, 0000258, 0000358, 0035648]
Я просто хочу выбрать строку, содержащую данные, соответствующие элементам входного массива.
До сих пор я пробовал фильтры, должен/ Если запросы выполняются вместе с основными данными выбора, ниже приведена последняя версия кода, которую я пробовал.Это работает для сценария, когда входной массив содержит данные, которые находятся на сервере эластичных данных, но если я удаляю одну запись, которая содержит данные на эластичном сервере, но ее нет в массиве входных данных, то также результирующий набор содержит данные, относящиеся кудаленная запись.
agent number e.g. 0000258
BoolQueryBuilder matchQueryBuilder = QueryBuilders.boolQuery();
matchQueryBuilder.must(QueryBuilders.matchQuery("cltseqnum", clt0300to.getCltseqnum()));
matchQueryBuilder.must(QueryBuilders.matchQuery("addrseqnum", clt0300to.getAddrseqnum()));
if(!allAgentsAssignedFlag){
BoolQueryBuilder secondQuery;
for(String agentNum : allUserAgenciesList) {//allUserAgenciesList -> [0000004, 0000005, 0000258, 0000358, 0035648]
secondQuery = QueryBuilders.boolQuery();
secondQuery.must(QueryBuilders.matchQuery("policies.fillr1",agentNum.substring(0, 3)))
.must(QueryBuilders.matchQuery("policies.rpt0agt0nr",agentNum.substring(3, 4)))
.must(QueryBuilders.matchQuery("policies.fillr2",agentNum.substring(4, 7)));
matchQueryBuilder.must(secondQuery);
}
}
Ниже приведен json-запрос:
{
"bool" : {
"must" : [
{
"match" : {
"cltseqnum" : {
"query" : 335,
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match" : {
"addrseqnum" : {
"query" : 1,
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
}
],
"should" : [
{
"bool" : {
"must" : [
{
"match" : {
"policies.fillr1" : {
"query" : "000",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match" : {
"policies.rpt0agt0nr" : {
"query" : "0",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match" : {
"policies.fillr2" : {
"query" : "004",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
},
{
"bool" : {
"must" : [
{
"match" : {
"policies.fillr1" : {
"query" : "000",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match" : {
"policies.rpt0agt0nr" : {
"query" : "0",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match" : {
"policies.fillr2" : {
"query" : "005",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
},
{
"bool" : {
"must" : [
{
"match" : {
"policies.fillr1" : {
"query" : "000",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match" : {
"policies.rpt0agt0nr" : {
"query" : "0",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match" : {
"policies.fillr2" : {
"query" : "258",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
},
{
"bool" : {
"must" : [
{
"match" : {
"policies.fillr1" : {
"query" : "000",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match" : {
"policies.rpt0agt0nr" : {
"query" : "0",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match" : {
"policies.fillr2" : {
"query" : "358",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
},
{
"bool" : {
"must" : [
{
"match" : {
"policies.fillr1" : {
"query" : "003",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match" : {
"policies.rpt0agt0nr" : {
"query" : "5",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match" : {
"policies.fillr2" : {
"query" : "648",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
}