Skip to content

Commit 992ec10

Browse files
committed
add new file
1 parent 473c49f commit 992ec10

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using System;
2+
using Newtonsoft.Json;
3+
4+
namespace Nest
5+
{
6+
/// <summary>
7+
/// The predicate_token_filter token filter takes a predicate script, and removes tokens that do
8+
/// not match the predicate.
9+
/// </summary>
10+
public interface IPredicateTokenFilter : ITokenFilter
11+
{
12+
/// <summary>
13+
/// a predicate script that determines whether or not the current token will
14+
/// be emitted. Note that only inline scripts are supported.
15+
/// </summary>
16+
[JsonProperty("script")]
17+
IScript Script { get; set; }
18+
}
19+
20+
public class PredicateTokenFilter : TokenFilterBase, IPredicateTokenFilter
21+
{
22+
public PredicateTokenFilter() : base("predicate_token_filter") { }
23+
24+
public IScript Script { get; set; }
25+
}
26+
27+
/// <inheritdoc cref="IPredicateTokenFilter" />
28+
public class PredicateTokenFilterDescriptor
29+
: TokenFilterDescriptorBase<PredicateTokenFilterDescriptor, IPredicateTokenFilter>, IPredicateTokenFilter
30+
{
31+
protected override string Type => "predicate_token_filter";
32+
33+
IScript IPredicateTokenFilter.Script { get; set; }
34+
35+
/// <inheritdoc cref="IPredicateTokenFilter.Script" />
36+
public PredicateTokenFilterDescriptor Script(Func<ScriptDescriptor, IScript> scriptSelector) =>
37+
Assign(a => a.Script = scriptSelector?.Invoke(new ScriptDescriptor()));
38+
39+
/// <inheritdoc cref="IPredicateTokenFilter.Script" />
40+
public PredicateTokenFilterDescriptor Script(string predicate) =>
41+
Assign(a => a.Script = new InlineScript(predicate));
42+
}
43+
}

0 commit comments

Comments
 (0)