FREVA-CLINT / freva-nextgen

The next generation Freva
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Introduce exclusive search #50

Closed antarcticrainforest closed 3 months ago

antarcticrainforest commented 3 months ago

As we discussed earlier. The restAPI is not able to perform a search the should NOT include certain values. This addresses this.

The old API realised an exclusive search by using <facet_name>_not_=value. I figured that it is more straightforward and allow for a more fine-grained search if we used normal lucene syntax. That is facet_name=-value or facet_name=not value or facet_name=!value. That way we don't have to deal with the facet checker.

If on the other hand, anyone says we should have the old way <facet_name>_not_=value please shout now.

antarcticrainforest commented 3 months ago

I've also added the facet_not_=value construct back to the code. So there is nothing to be done from the plugin side.

The side effect is, that it doesn't matter where the _not_ is located so _not_facet=value or facet_not_=value will have the same effect even fa_not_cet=value if you think that is problematic let me know.

eelucio commented 3 months ago

I've also added the facet_not_=value construct back to the code. So there is nothing to be done from the plugin side.

The side effect is, that it doesn't matter where the _not_ is located so _not_facet=value or facet_not_=value will have the same effect even fa_not_cet=value if you think that is problematic let me know.

The fact that we have some facets written with underscore e.g. file_no_version in the managed schema should not be a problem, right?

I guess that for the future we will just need to be sure that nobody enters a facet that has a _not_ in between the name as the above mentioned param is dangerously close to this statement. But as far as I know it was not searchable, right?

otherwise LGTM!

one (very) minor comment: is there any reason why there is a function called foreward_lookup() (old english) instead of forward_lookup()? I hope the typo correctors do not change it automatically

and one last one, shall I'd like to correct some typos (e.g. in docstrings etc.) should I wait until many other branches are merged?