mirror of
https://github.com/elastic/kibana.git
synced 2025-06-28 03:01:21 -04:00
[data views] Stored fields are always requested, we don't need logic around it (#171815)
## Summary Stored field handling is basically a dead code path. `['*']` is always sent so lets push this closer to the query. --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
f98f282388
commit
2403bc8c88
11 changed files with 22 additions and 25 deletions
|
@ -108,7 +108,7 @@ export const buildDataViewMock = ({
|
||||||
fields: dataViewFields,
|
fields: dataViewFields,
|
||||||
type: 'default',
|
type: 'default',
|
||||||
getName: () => name,
|
getName: () => name,
|
||||||
getComputedFields: () => ({ docvalueFields: [], scriptFields: {}, storedFields: ['*'] }),
|
getComputedFields: () => ({ docvalueFields: [], scriptFields: {} }),
|
||||||
getSourceFiltering: () => ({}),
|
getSourceFiltering: () => ({}),
|
||||||
getIndexPattern: () => `${name}-title`,
|
getIndexPattern: () => `${name}-title`,
|
||||||
getFieldByName: jest.fn((fieldName: string) => dataViewFields.getByName(fieldName)),
|
getFieldByName: jest.fn((fieldName: string) => dataViewFields.getByName(fieldName)),
|
||||||
|
|
|
@ -281,7 +281,6 @@ describe('SearchSource', () => {
|
||||||
searchSource.setField('index', {
|
searchSource.setField('index', {
|
||||||
...indexPattern,
|
...indexPattern,
|
||||||
getComputedFields: () => ({
|
getComputedFields: () => ({
|
||||||
storedFields: ['hello'],
|
|
||||||
scriptFields: { world: {} },
|
scriptFields: { world: {} },
|
||||||
docvalueFields: ['@timestamp'],
|
docvalueFields: ['@timestamp'],
|
||||||
runtimeFields,
|
runtimeFields,
|
||||||
|
@ -289,7 +288,7 @@ describe('SearchSource', () => {
|
||||||
} as unknown as DataView);
|
} as unknown as DataView);
|
||||||
|
|
||||||
const request = searchSource.getSearchRequestBody();
|
const request = searchSource.getSearchRequestBody();
|
||||||
expect(request.stored_fields).toEqual(['hello']);
|
expect(request.stored_fields).toEqual(['*']);
|
||||||
expect(request.script_fields).toEqual({ world: {} });
|
expect(request.script_fields).toEqual({ world: {} });
|
||||||
expect(request.fields).toEqual(['@timestamp']);
|
expect(request.fields).toEqual(['@timestamp']);
|
||||||
expect(request.runtime_mappings).toEqual(runtimeFields);
|
expect(request.runtime_mappings).toEqual(runtimeFields);
|
||||||
|
|
|
@ -779,12 +779,11 @@ export class SearchSource {
|
||||||
const metaFields = getConfig(UI_SETTINGS.META_FIELDS) ?? [];
|
const metaFields = getConfig(UI_SETTINGS.META_FIELDS) ?? [];
|
||||||
|
|
||||||
// get some special field types from the index pattern
|
// get some special field types from the index pattern
|
||||||
const { docvalueFields, scriptFields, storedFields, runtimeFields } = index
|
const { docvalueFields, scriptFields, runtimeFields } = index
|
||||||
? index.getComputedFields()
|
? index.getComputedFields()
|
||||||
: {
|
: {
|
||||||
docvalueFields: [],
|
docvalueFields: [],
|
||||||
scriptFields: {},
|
scriptFields: {},
|
||||||
storedFields: ['*'],
|
|
||||||
runtimeFields: {},
|
runtimeFields: {},
|
||||||
};
|
};
|
||||||
const fieldListProvided = !!body.fields;
|
const fieldListProvided = !!body.fields;
|
||||||
|
@ -798,7 +797,7 @@ export class SearchSource {
|
||||||
...scriptFields,
|
...scriptFields,
|
||||||
}
|
}
|
||||||
: {};
|
: {};
|
||||||
body.stored_fields = storedFields;
|
body.stored_fields = ['*'];
|
||||||
body.runtime_mappings = runtimeFields || {};
|
body.runtime_mappings = runtimeFields || {};
|
||||||
|
|
||||||
// apply source filters from index pattern if specified by the user
|
// apply source filters from index pattern if specified by the user
|
||||||
|
|
|
@ -136,10 +136,6 @@ describe('IndexPattern', () => {
|
||||||
expect(indexPattern.getComputedFields).toBeInstanceOf(Function);
|
expect(indexPattern.getComputedFields).toBeInstanceOf(Function);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should request all stored fields', () => {
|
|
||||||
expect(indexPattern.getComputedFields().storedFields).toContain('*');
|
|
||||||
});
|
|
||||||
|
|
||||||
test('should request date fields as docvalue_fields', () => {
|
test('should request date fields as docvalue_fields', () => {
|
||||||
const { docvalueFields } = indexPattern.getComputedFields();
|
const { docvalueFields } = indexPattern.getComputedFields();
|
||||||
const docValueFieldNames = docvalueFields.map((field) => field.field);
|
const docValueFieldNames = docvalueFields.map((field) => field.field);
|
||||||
|
|
|
@ -85,7 +85,6 @@ export class DataView extends AbstractDataView implements DataViewBase {
|
||||||
const scriptFields: Record<string, estypes.ScriptField> = {};
|
const scriptFields: Record<string, estypes.ScriptField> = {};
|
||||||
if (!this.fields) {
|
if (!this.fields) {
|
||||||
return {
|
return {
|
||||||
storedFields: ['*'],
|
|
||||||
scriptFields,
|
scriptFields,
|
||||||
docvalueFields: [] as Array<{ field: string; format: string }>,
|
docvalueFields: [] as Array<{ field: string; format: string }>,
|
||||||
runtimeFields: {},
|
runtimeFields: {},
|
||||||
|
@ -117,7 +116,6 @@ export class DataView extends AbstractDataView implements DataViewBase {
|
||||||
const runtimeFields = this.getRuntimeMappings();
|
const runtimeFields = this.getRuntimeMappings();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
storedFields: ['*'],
|
|
||||||
scriptFields,
|
scriptFields,
|
||||||
docvalueFields,
|
docvalueFields,
|
||||||
runtimeFields,
|
runtimeFields,
|
||||||
|
|
|
@ -40,7 +40,7 @@ const services = {
|
||||||
describe('Test of <Doc /> helper / hook', () => {
|
describe('Test of <Doc /> helper / hook', () => {
|
||||||
test('buildSearchBody given useNewFieldsApi is false', () => {
|
test('buildSearchBody given useNewFieldsApi is false', () => {
|
||||||
const dataView = {
|
const dataView = {
|
||||||
getComputedFields: () => ({ storedFields: [], scriptFields: [], docvalueFields: [] }),
|
getComputedFields: () => ({ scriptFields: [], docvalueFields: [] }),
|
||||||
} as unknown as DataView;
|
} as unknown as DataView;
|
||||||
const actual = buildSearchBody('1', index, dataView, false);
|
const actual = buildSearchBody('1', index, dataView, false);
|
||||||
expect(actual).toMatchInlineSnapshot(`
|
expect(actual).toMatchInlineSnapshot(`
|
||||||
|
@ -67,7 +67,9 @@ describe('Test of <Doc /> helper / hook', () => {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"script_fields": Array [],
|
"script_fields": Array [],
|
||||||
"stored_fields": Array [],
|
"stored_fields": Array [
|
||||||
|
"*",
|
||||||
|
],
|
||||||
"version": true,
|
"version": true,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -76,7 +78,7 @@ describe('Test of <Doc /> helper / hook', () => {
|
||||||
|
|
||||||
test('buildSearchBody useNewFieldsApi is true', () => {
|
test('buildSearchBody useNewFieldsApi is true', () => {
|
||||||
const dataView = {
|
const dataView = {
|
||||||
getComputedFields: () => ({ storedFields: [], scriptFields: [], docvalueFields: [] }),
|
getComputedFields: () => ({ scriptFields: [], docvalueFields: [] }),
|
||||||
} as unknown as DataView;
|
} as unknown as DataView;
|
||||||
const actual = buildSearchBody('1', index, dataView, true);
|
const actual = buildSearchBody('1', index, dataView, true);
|
||||||
expect(actual).toMatchInlineSnapshot(`
|
expect(actual).toMatchInlineSnapshot(`
|
||||||
|
@ -108,7 +110,9 @@ describe('Test of <Doc /> helper / hook', () => {
|
||||||
},
|
},
|
||||||
"runtime_mappings": Object {},
|
"runtime_mappings": Object {},
|
||||||
"script_fields": Array [],
|
"script_fields": Array [],
|
||||||
"stored_fields": Array [],
|
"stored_fields": Array [
|
||||||
|
"*",
|
||||||
|
],
|
||||||
"version": true,
|
"version": true,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -117,7 +121,7 @@ describe('Test of <Doc /> helper / hook', () => {
|
||||||
|
|
||||||
test('buildSearchBody with requestSource', () => {
|
test('buildSearchBody with requestSource', () => {
|
||||||
const dataView = {
|
const dataView = {
|
||||||
getComputedFields: () => ({ storedFields: [], scriptFields: [], docvalueFields: [] }),
|
getComputedFields: () => ({ scriptFields: [], docvalueFields: [] }),
|
||||||
} as unknown as DataView;
|
} as unknown as DataView;
|
||||||
const actual = buildSearchBody('1', index, dataView, true, true);
|
const actual = buildSearchBody('1', index, dataView, true, true);
|
||||||
expect(actual).toMatchInlineSnapshot(`
|
expect(actual).toMatchInlineSnapshot(`
|
||||||
|
@ -150,7 +154,9 @@ describe('Test of <Doc /> helper / hook', () => {
|
||||||
},
|
},
|
||||||
"runtime_mappings": Object {},
|
"runtime_mappings": Object {},
|
||||||
"script_fields": Array [],
|
"script_fields": Array [],
|
||||||
"stored_fields": Array [],
|
"stored_fields": Array [
|
||||||
|
"*",
|
||||||
|
],
|
||||||
"version": true,
|
"version": true,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -160,7 +166,6 @@ describe('Test of <Doc /> helper / hook', () => {
|
||||||
test('buildSearchBody with runtime fields', () => {
|
test('buildSearchBody with runtime fields', () => {
|
||||||
const dataView = {
|
const dataView = {
|
||||||
getComputedFields: () => ({
|
getComputedFields: () => ({
|
||||||
storedFields: [],
|
|
||||||
scriptFields: [],
|
scriptFields: [],
|
||||||
docvalueFields: [],
|
docvalueFields: [],
|
||||||
runtimeFields: {
|
runtimeFields: {
|
||||||
|
@ -210,7 +215,9 @@ describe('Test of <Doc /> helper / hook', () => {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"script_fields": Array [],
|
"script_fields": Array [],
|
||||||
"stored_fields": Array [],
|
"stored_fields": Array [
|
||||||
|
"*",
|
||||||
|
],
|
||||||
"version": true,
|
"version": true,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,7 +131,7 @@ export function buildSearchBody(
|
||||||
filter: [{ ids: { values: [id] } }, { term: { _index: index } }],
|
filter: [{ ids: { values: [id] } }, { term: { _index: index } }],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
stored_fields: computedFields.storedFields,
|
stored_fields: ['*'],
|
||||||
script_fields: computedFields.scriptFields,
|
script_fields: computedFields.scriptFields,
|
||||||
version: true,
|
version: true,
|
||||||
},
|
},
|
||||||
|
|
|
@ -91,7 +91,7 @@ export const buildDataViewMock = ({
|
||||||
metaFields: ['_index', '_score'],
|
metaFields: ['_index', '_score'],
|
||||||
fields: dataViewFields,
|
fields: dataViewFields,
|
||||||
getName: () => name,
|
getName: () => name,
|
||||||
getComputedFields: () => ({ docvalueFields: [], scriptFields: {}, storedFields: ['*'] }),
|
getComputedFields: () => ({ docvalueFields: [], scriptFields: {} }),
|
||||||
getSourceFiltering: () => ({}),
|
getSourceFiltering: () => ({}),
|
||||||
getFieldByName: jest.fn((fieldName: string) => dataViewFields.getByName(fieldName)),
|
getFieldByName: jest.fn((fieldName: string) => dataViewFields.getByName(fieldName)),
|
||||||
timeFieldName: timeFieldName || '',
|
timeFieldName: timeFieldName || '',
|
||||||
|
|
|
@ -100,7 +100,7 @@ export const buildDataViewMock = ({
|
||||||
fields: dataViewFields,
|
fields: dataViewFields,
|
||||||
type: 'default',
|
type: 'default',
|
||||||
getName: () => name,
|
getName: () => name,
|
||||||
getComputedFields: () => ({ docvalueFields: [], scriptFields: {}, storedFields: ['*'] }),
|
getComputedFields: () => ({ docvalueFields: [], scriptFields: {} }),
|
||||||
getSourceFiltering: () => ({}),
|
getSourceFiltering: () => ({}),
|
||||||
getIndexPattern: () => `${name}-title`,
|
getIndexPattern: () => `${name}-title`,
|
||||||
getFieldByName: jest.fn((fieldName: string) => dataViewFields.getByName(fieldName)),
|
getFieldByName: jest.fn((fieldName: string) => dataViewFields.getByName(fieldName)),
|
||||||
|
|
|
@ -49,7 +49,6 @@ export const createIndexPatternMock = ({
|
||||||
getComputedFields: () => ({
|
getComputedFields: () => ({
|
||||||
runtimeFields: runtimeFields ?? {},
|
runtimeFields: runtimeFields ?? {},
|
||||||
scriptFields: {},
|
scriptFields: {},
|
||||||
storedFields: [],
|
|
||||||
docvalueFields: [],
|
docvalueFields: [],
|
||||||
}),
|
}),
|
||||||
getRuntimeMappings: () => runtimeFields ?? {},
|
getRuntimeMappings: () => runtimeFields ?? {},
|
||||||
|
|
|
@ -99,7 +99,6 @@ export const createIndexPatternMock = ({
|
||||||
return accumulatedRuntimeFields;
|
return accumulatedRuntimeFields;
|
||||||
}, {}),
|
}, {}),
|
||||||
scriptFields: {},
|
scriptFields: {},
|
||||||
storedFields: [],
|
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue