You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a user specifies they want their data to be highlighted the highlighted data returns a truncated portion in the _source.
Please see my comments below. I didn't think a pull request was appropriate as all I would be doing is deleting a function.
Is there a reason for mutating the source of the highlighted data?
Best,
Ryan
// src/utils/helper.js
// Why are we mutating the original _source object here?
// This takes away information for the end-user given by elasticsearch
// My use case of ElasticSearch is to store parsed pdfs as strings
// These contain 1000+ chars each
// The highlighted information given by elasticsearch have many fewer characters than this.
// Around 100 chars
// I want to be able to send the whole of the information to the end-user in the results
// If you remove this function (highlightResults)
// the user still retains the highlighted information in the main result object
// and the original _source information
const highlightResults = (result) => {
const data = { ...result };
if (data.highlight) {
Object.keys(data.highlight).forEach((highlightItem) => {
const highlightValue = data.highlight[highlightItem][0];
data._source = Object.assign({}, data._source, { [highlightItem]: highlightValue });
});
}
return data;
};
export const parseHits = (hits) => {
let results = null;
if (hits) {
results = [...hits].map((item) => {
const streamProps = {};
if (item._updated) {
streamProps._updated = item._updated;
} else if (item._deleted) {
streamProps._deleted = item._deleted;
}
// no need to mutate the data! below
const data = highlightResults(item);
return {
_id: data._id,
_index: data._index,
...data._source,
...streamProps,
};
});
}
return results;
};
The text was updated successfully, but these errors were encountered:
I agree, you have a point here. We only mutate the hits data in order to render the highlighted fields in the result-component directly. This lets users render highlighted results easily without worrying about processing the highlighted fields.
But I believe, we should come up with an approach where either both of these behaviors are feasible by default or it is toggle-able.
When a user specifies they want their data to be highlighted the highlighted data returns a truncated portion in the _source.
Please see my comments below. I didn't think a pull request was appropriate as all I would be doing is deleting a function.
Is there a reason for mutating the source of the highlighted data?
Best,
Ryan
The text was updated successfully, but these errors were encountered: