Skip to content

FastVectorHighlighter should use ValueFetchers to load source data #85815

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Apr 12, 2022

Conversation

romseygeek
Copy link
Contributor

FVH was relying on SourceLookup.extractRawValues() to load its data, but this no
longer works for multifields. It should instead use value fetchers which will correctly
locate the input for multifields and/or copy fields.

Fixes #84690
Fixes #82458
Fixes #80895
Fixes #75011

@romseygeek romseygeek self-assigned this Apr 12, 2022
@elasticmachine elasticmachine added the Team:Search Meta label for search team label Apr 12, 2022
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-search (Team:Search)

@elasticsearchmachine
Copy link
Collaborator

Hi @romseygeek, I've created a changelog YAML for you.

Copy link
Contributor

@mayya-sharipova mayya-sharipova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@romseygeek Thanks Alan, this LGTM! Great to close all 4 issues.


public class FastVectorHighlighterTests extends HighlighterTestCase {

public void testHighlightingMultiFields() throws IOException {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice tests!

@romseygeek romseygeek merged commit a69cdd0 into elastic:master Apr 12, 2022
@romseygeek romseygeek deleted the highlighter/fvh-multifields branch April 12, 2022 14:19
@Daantie
Copy link

Daantie commented Apr 12, 2022

@romseygeek thanks for fixing this!

@mayya-sharipova I noticed the tag v8.3.0, will it be released only in that version, or will there be minor releases of lower versions as well? As the issues fixed by this started from 7.14.

weizijun added a commit to weizijun/elasticsearch that referenced this pull request Apr 13, 2022
* upstream/master: (40 commits)
  Fix BuildTests serialization (elastic#85827)
  Use urgent priority for node shutdown cluster state update (elastic#85838)
  Remove Task classes from HLRC (elastic#85835)
  Remove unused migration classes (elastic#85834)
  Remove uses of Charset name parsing (elastic#85795)
  Remove legacy versioned logic for DefaultSystemMemoryInfo (elastic#85761)
  Expose proxy settings for GCS repositories (elastic#85785)
  Remove SLM classes from HLRC (elastic#85825)
  TSDB: fix the time_series in order collect priority (elastic#85526)
  Remove ILM classes from HLRC (elastic#85822)
  FastVectorHighlighter should use ValueFetchers to load source data (elastic#85815)
  Iteratively execute synchronous ingest processors (elastic#84250)
  Remove TransformClient from HLRC  (elastic#85787)
  Mute XPackRestIT deprecation/10_basic/Test Deprecations (elastic#85807)
  Unmute Lintian packaging test (elastic#85778)
  Add a highlighter unit test base class (elastic#85719)
  Remove NIO Transport Plugin (elastic#82085)
  [TEST] Remove token methods from HLRC SecurityClient (elastic#85515)
  [Test] Use thread-safe hashSet for result collection (elastic#85653)
  [TEST] Mute BuildTests.testSerialization (elastic#85801)
  ...

# Conflicts:
#	server/src/test/java/org/elasticsearch/search/aggregations/timeseries/TimeSeriesIndexSearcherTests.java
@jtibshirani
Copy link
Contributor

@romseygeek what would you think about backporting this to 7.17 ? It seems quite a few users are running into it (most recently #87185).

@romseygeek
Copy link
Contributor Author

We'd also need to backport #85719, but I think it's reasonable to do both

romseygeek added a commit to romseygeek/elasticsearch that referenced this pull request Jun 7, 2022
…lastic#85815)

FVH was relying on `SourceLookup.extractRawValues()` to load its data, but this no
longer works for multifields. It should instead use value fetchers which will correctly
locate the input for multifields and/or copy fields.

Fixes elastic#84690
Fixes elastic#82458
Fixes elastic#80895
Fixes elastic#75011
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment