watson-developer-cloud / discovery-components

IBM Watson Discovery components
https://watson-developer-cloud.github.io/discovery-components/storybook
Apache License 2.0
22 stars 38 forks source link

Filter being removed #326

Open leaelhage opened 2 years ago

leaelhage commented 2 years ago

I have set a filter for Language instead of having a dynamic filter since the user would have to select a filter after every search

<DiscoverySearch
                searchClient={searchClient}
                projectId={projectId}
                count={10}
                overrideQueryParameters={{
                  filter:`metadata.Language:${lang}`,
                  passages: {
                    enabled: true,
                    max_per_document: 5,
                    characters: 325,
                    find_answers: true,
                    max_answers_per_passage: 5
                  },
                  _return: ['document_passages', 'metadata', 'extracted_metadata', 'html', 'result_metadata',
                  'Description', 'Target_Lines_of_Business', 'Path', 'Modified', 'Content_Type', 'Title', 'Form_Number']
                }}

What I notice is when I hit enter on a query the filter isnt taken in consideration. If possible to provide guidance I'm trying to understand the backwardsCompatibleSearchParameters since I'm seeing that this might be the cause of the change.

-------currentSearchParameters {projectId: '', filter: 'metadata.Language:English', passages: {…}, _return: Array(12), naturalLanguageQuery: 'tax', …} count: 10 filter: "metadata.Language:English" naturalLanguageQuery: "tax" passages: {enabled: true, max_per_document: 5, characters: 325, find_answers: true, max_answers_per_passage: 5} projectId: "" spellingSuggestions: true _return: (12) ['document_passages', 'metadata', 'extracted_metadata', 'html', 'result_metadata', 'Description', 'Target_Lines_of_Business', 'Path', 'Modified', 'Content_Type', 'Title', 'Form_Number']

-------backwardsCompatibleSearchParameter {projectId: '', filter: '', passages: {…}, _return: Array(12), naturalLanguageQuery: 'tax', …} count: 10 filter: "" naturalLanguageQuery: "tax" offset: 0 passages: {enabled: true, max_per_document: 5, characters: 325, find_answers: true, max_answers_per_passage: 5} projectId: "" spellingSuggestions: true _return: (12) ['document_passages', 'metadata', 'extracted_metadata', 'html', 'result_metadata', 'Description', 'Target_Lines_of_Business', 'Path', 'Modified', 'Content_Type', 'Title', 'Form_Number']

jhpedemonte commented 2 years ago

I was able to reproduce. The filter string is getting overridden in https://github.com/watson-developer-cloud/discovery-components/blob/v1.5.0-beta.30/packages/discovery-react-components/src/components/DiscoverySearch/DiscoverySearch.tsx#L455. But I'm not exactly sure why that code is written that way. Still investigating.

MarzlS commented 1 year ago

I think any filter that has been set is overwritten upon search in line https://github.com/watson-developer-cloud/discovery-components/blob/083a32f3e1d5cc7d5257e1d5b9da25ad62bb308e/packages/discovery-react-components/src/components/DiscoverySearch/DiscoverySearch.tsx#L324 as the "resetAggregations" flag is always true here.