Skip to content

Commit

Permalink
Test and docs for lucene Filter
Browse files Browse the repository at this point in the history
  • Loading branch information
nzdev committed Dec 7, 2023
1 parent 1761dc7 commit d54bd4c
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 1 deletion.
11 changes: 11 additions & 0 deletions docs/articles/filtering.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,3 +222,14 @@ var results = searcher.CreateQuery()
.All()
.Execute();
```

### Custom lucene filter

```csharp
var searcher = indexer.Searcher;
var query = searcher.CreateQuery();

var query = (LuceneSearchQuery)query.NativeQuery("hello:world").And(); // Make query ready for extending
query.LuceneFilter(new TermFilter(new Term("nodeTypeAlias", "CWS_Home"))); // Add the raw lucene query
var results = query.Execute();
```
37 changes: 36 additions & 1 deletion src/Examine.Test/Examine.Lucene/Search/FluentApiTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@
using Lucene.Net.Analysis.En;
using Lucene.Net.Analysis.Standard;
using Lucene.Net.Facet;
using Lucene.Net.Queries;
using Lucene.Net.QueryParsers.Classic;
using Lucene.Net.Search;
using Lucene.Net.Store;
using NUnit.Framework;

using LuceneTerm = Lucene.Net.Index.Term;


namespace Examine.Test.Examine.Lucene.Search
Expand Down Expand Up @@ -5672,6 +5673,40 @@ Action<FieldDefinitionCollection, Analyzer, Directory, Directory, TestIndex, ISe
RunFilterTest(withFacets, actAssertAction);
}

[TestCase(FacetTestType.TaxonomyFacets)]
[TestCase(FacetTestType.SortedSetFacets)]
[TestCase(FacetTestType.NoFacets)]
public void Custom_Lucene_Filter(FacetTestType withFacets)
{

Action<FieldDefinitionCollection, Analyzer, Directory, Directory, TestIndex, ISearcher> actAssertAction
= (fieldDefinitionCollection, indexAnalyzer, indexDirectory, taxonomyDirectory, testIndex, searcher)
=>
{
var criteria = (LuceneSearchQuery)searcher.CreateQuery("content");
criteria.LuceneFilter(new TermFilter(new LuceneTerm("nodeTypeAlias", "CWS_Home")));
var boolOp = criteria.All();
if (HasFacets(withFacets))
{
var results = boolOp.WithFacets(facets => facets.FacetString("nodeName")).Execute();
var facetResults = results.GetFacet("nodeName");
Assert.AreEqual(2, results.TotalItemCount);
Assert.AreEqual(2, facetResults.Count());
}
else
{
var results = boolOp.Execute();
Assert.AreEqual(2, results.TotalItemCount);
}
};
RunFilterTest(withFacets, actAssertAction);
}

private void RunFilterTest(FacetTestType withFacets, Action<FieldDefinitionCollection, Analyzer, Directory, Directory, TestIndex, ISearcher> actAssertAction)
{
FieldDefinitionCollection fieldDefinitionCollection = null;
Expand Down

0 comments on commit d54bd4c

Please sign in to comment.