Skip to content

Commit

Permalink
Remove filter chaining as not supported in lucene 5+
Browse files Browse the repository at this point in the history
  • Loading branch information
nzdev committed Dec 24, 2023
2 parents 4467d49 + 0d69e07 commit 19b82d5
Show file tree
Hide file tree
Showing 14 changed files with 1 addition and 337 deletions.
22 changes: 1 addition & 21 deletions docs/articles/filtering.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ var results = query.Execute(QueryOptions.Default);

This will return results where the field `SomeDouble` is within the range 0 - 100 (min value and max value included).

## Booleans and Chains
## Booleans

### Or

Expand Down Expand Up @@ -203,26 +203,6 @@ var results = searcher.CreateQuery()
.Execute();
```

### Chaining

```csharp
var searcher = myIndex.Searcher;
var results = searcher.CreateQuery()
.WithFilter(
filter =>
{
filter.ChainFilters(chain =>
chain.Chain(ChainOperation.AND, chainedFilter => chainedFilter.NestedFieldValueExists("nodeTypeAlias")) //AND
.Chain(ChainOperation.AND, chainedFilter => chainedFilter.NestedTermPrefix(new FilterTerm("nodeTypeAlias", "CWS_H")))
.Chain(ChainOperation.OR, chainedFilter => chainedFilter.NestedTermFilter(new FilterTerm("nodeName", "my name")))
.Chain(ChainOperation.ANDNOT, chainedFilter => chainedFilter.NestedTermFilter(new FilterTerm("nodeName", "someone elses name")))
.Chain(ChainOperation.XOR, chainedFilter => chainedFilter.NestedTermPrefix(new FilterTerm("nodeName", "my")))
);
})
.All()
.Execute();
```

## Spatial

Examine supports Spatial Filtering.
Expand Down
25 changes: 0 additions & 25 deletions src/Examine.Core/Search/ChainOperation.cs

This file was deleted.

7 changes: 0 additions & 7 deletions src/Examine.Core/Search/IFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,6 @@ namespace Examine.Search
{
public interface IFilter
{
/// <summary>
/// Chain filters
/// </summary>
/// <param name="chain"></param>
/// <returns></returns>
IBooleanFilterOperation ChainFilters(Action<IFilterChain> chain);

/// <summary>
/// Term must match
/// </summary>
Expand Down
25 changes: 0 additions & 25 deletions src/Examine.Core/Search/IFilterChain.cs

This file was deleted.

7 changes: 0 additions & 7 deletions src/Examine.Core/Search/INestedFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,6 @@ namespace Examine.Search
{
public interface INestedFilter
{
/// <summary>
/// Chain filters
/// </summary>
/// <param name="chain"></param>
/// <returns></returns>
INestedBooleanFilterOperation NestedChainFilters(Action<IFilterChain> chain);

/// <summary>
/// Term must match
/// </summary>
Expand Down
32 changes: 0 additions & 32 deletions src/Examine.Lucene/Search/FilterChain.cs

This file was deleted.

48 changes: 0 additions & 48 deletions src/Examine.Lucene/Search/FilterChainOp.cs

This file was deleted.

51 changes: 0 additions & 51 deletions src/Examine.Lucene/Search/FilterChainOpBase.cs

This file was deleted.

6 changes: 0 additions & 6 deletions src/Examine.Lucene/Search/LuceneFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@ public LuceneFilter(LuceneSearchFilteringOperation search, Occur occurrence)
_occurrence = occurrence;
}

/// <inheritdoc/>
public IBooleanFilterOperation ChainFilters(Action<IFilterChain> chain) => _search.ChainFiltersInternal(chain, _occurrence);

/// <inheritdoc/>
public IBooleanFilterOperation TermFilter(FilterTerm term) => _search.TermFilterInternal(term,_occurrence);

Expand All @@ -46,9 +43,6 @@ public LuceneFilter(LuceneSearchFilteringOperation search, Occur occurrence)
/// <inheritdoc/>
public IBooleanFilterOperation QueryFilter(Func<INestedQuery, INestedBooleanOperation> inner, BooleanOperation defaultOp = BooleanOperation.And) => _search.QueryFilterInternal(inner, defaultOp, _occurrence);

/// <inheritdoc/>
INestedBooleanFilterOperation INestedFilter.NestedChainFilters(Action<IFilterChain> chain) => _search.NestedChainFiltersInternal(chain, _occurrence);

/// <inheritdoc/>
public INestedBooleanFilterOperation NestedTermFilter(FilterTerm term) => _search.NestedTermFilterInternal(term, _occurrence);

Expand Down
3 changes: 0 additions & 3 deletions src/Examine.Lucene/Search/LuceneFilteringBooleanOperation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,6 @@ public LuceneFilteringBooleanOperation(LuceneSearchFilteringOperation luceneSear

#region IFilter

/// <inheritdoc/>
public override IBooleanFilterOperation ChainFilters(Action<IFilterChain> chain) => _search.ChainFilters(chain);

/// <inheritdoc/>
public override IBooleanFilterOperation TermFilter(FilterTerm term) => _search.TermFilter(term);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,6 @@ internal Filter GetNestedFilterOp(
return _search.Filters.Pop();
}

/// <inheritdoc/>
public abstract IBooleanFilterOperation ChainFilters(Action<IFilterChain> chain);

/// <inheritdoc/>
public abstract IBooleanFilterOperation TermFilter(FilterTerm term);

Expand Down
50 changes: 0 additions & 50 deletions src/Examine.Lucene/Search/LuceneSearchFiltering.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,37 +37,8 @@ public LuceneSearchFilteringOperation(LuceneSearchQuery luceneSearchQuery)
/// <returns></returns>
protected override LuceneFilteringBooleanOperationBase CreateBooleanOp() => new LuceneFilteringBooleanOperation(this);

/// <summary>
/// Creates a new <see cref="FilterChainOpBase"/>
/// </summary>
/// <returns></returns>
protected override FilterChainOpBase CreateChainOp() => new FilterChainOp(this);
#region IFilter

/// <inheritdoc/>
public override IBooleanFilterOperation ChainFilters(Action<IFilterChain> chain)
{
return ChainFiltersInternal(chain);
}

/// <inheritdoc/>
internal IBooleanFilterOperation ChainFiltersInternal(Action<IFilterChain> chain, Occur occurance = Occur.MUST)
{
if (chain is null)
{
throw new ArgumentNullException(nameof(chain));
}
var chaining = CreateChainOp();
chain.Invoke(chaining);
var chainedFilter = chaining.Build();
if (chainedFilter != null)
{
Filter.Add(chainedFilter, occurance);
}

return CreateBooleanOp();
}

/// <inheritdoc/>
public override IBooleanFilterOperation TermFilter(FilterTerm term) => TermFilterInternal(term);

Expand Down Expand Up @@ -292,9 +263,6 @@ internal IBooleanFilterOperation LongRangeFilterInternal(string field, long? min

#region INestedFilter

/// <inheritdoc/>
protected override INestedBooleanFilterOperation NestedChainFilters(Action<IFilterChain> chain) => NestedChainFiltersInternal(chain);

/// <inheritdoc/>
protected override INestedBooleanFilterOperation NestedTermFilter(FilterTerm term) => NestedTermFilterInternal(term);

Expand All @@ -313,24 +281,6 @@ internal IBooleanFilterOperation LongRangeFilterInternal(string field, long? min
/// <inheritdoc/>
protected override INestedBooleanFilterOperation NestedQueryFilter(Func<INestedQuery, INestedBooleanOperation> inner, BooleanOperation defaultOp) => NestedQueryFilterInternal(inner, defaultOp);

/// <inheritdoc/>
internal INestedBooleanFilterOperation NestedChainFiltersInternal(Action<IFilterChain> chain, Occur occurance = Occur.MUST)
{
if (chain is null)
{
throw new ArgumentNullException(nameof(chain));
}
var chaining = new FilterChainOp(this);
chain.Invoke(chaining);
var chainedFilter = chaining.Build();
if (chainedFilter != null)
{
Filter.Add(chainedFilter, occurance);
}

return CreateBooleanOp();
}

/// <inheritdoc/>
internal INestedBooleanFilterOperation NestedTermFilterInternal(FilterTerm term, Occur occurance = Occur.MUST)
{
Expand Down
15 changes: 0 additions & 15 deletions src/Examine.Lucene/Search/LuceneSearchFilteringOperationBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,15 +68,6 @@ public LuceneFilteringBooleanOperationBase LuceneFilter(Filter filter, BooleanOp
/// <returns></returns>
protected abstract LuceneFilteringBooleanOperationBase CreateBooleanOp();

/// <summary>
/// Creates a new <see cref="FilterChainOpBase"/>
/// </summary>
/// <returns></returns>
protected abstract FilterChainOpBase CreateChainOp();

/// <inheritdoc/>
public abstract IBooleanFilterOperation ChainFilters(Action<IFilterChain> chain);

/// <inheritdoc/>
public abstract IBooleanFilterOperation TermFilter(FilterTerm term);

Expand All @@ -95,9 +86,6 @@ public LuceneFilteringBooleanOperationBase LuceneFilter(Filter filter, BooleanOp
/// <inheritdoc/>
public abstract IBooleanFilterOperation QueryFilter(Func<INestedQuery, INestedBooleanOperation> inner, BooleanOperation defaultOp = BooleanOperation.And);

/// <inheritdoc/>
protected abstract INestedBooleanFilterOperation NestedChainFilters(Action<IFilterChain> chain);

/// <inheritdoc/>
protected abstract INestedBooleanFilterOperation NestedTermFilter(FilterTerm term);

Expand All @@ -119,9 +107,6 @@ public LuceneFilteringBooleanOperationBase LuceneFilter(Filter filter, BooleanOp
/// <inheritdoc/>
protected abstract INestedBooleanFilterOperation NestedSpatialOperationFilter(string field, ExamineSpatialOperation spatialOperation, Func<IExamineSpatialShapeFactory, IExamineSpatialShape> shape);

/// <inheritdoc/>
INestedBooleanFilterOperation INestedFilter.NestedChainFilters(Action<IFilterChain> chain) => NestedChainFilters(chain);

/// <inheritdoc/>
INestedBooleanFilterOperation INestedFilter.NestedTermFilter(FilterTerm term) => NestedTermFilter(term);

Expand Down
Loading

0 comments on commit 19b82d5

Please sign in to comment.