Мой код такой:
const [fieldName, setFieldName] = useState('');
...
const selectFieldItem = name => {
setFieldName(name);
console.log('selected field: ', fieldName);
};
...
const getDocuments = async () => {
try {
if (selectedIndexName || value) {
const response = await client.search({
index: value,
body: {
query: {
match: {
fieldName: element,
},
},
},
});
console.log('documents', response.hits.hits);
setDocuments(response.hits.hits);
}
} catch (error) {
console.trace(error.message);
}
};
Дело в том, что fieldName является параметром. Так что это должно быть похоже на
"match":
{
"TXN_CODE": "1"
}
Но эластичный поиск понимает его как строку 'fieldName', как показано ниже
"match":
{
"fieldName": "1"
}
Любой совет для этого?
Я тоже пробовал это , но не сработало.
const response = await client.search({
index: value,
body: {
query: {
match: {
'{{fieldName}}': element,
},
},
},
params: {
fieldName: fieldName,
},
});