|
3 | 3 |
|
4 | 4 | namespace Nest |
5 | 5 | { |
| 6 | + /// <summary> |
| 7 | + /// An alias to one or more indices |
| 8 | + /// </summary> |
6 | 9 | [ReadAs(typeof(Alias))] |
7 | 10 | public interface IAlias |
8 | 11 | { |
9 | | - [DataMember(Name ="filter")] |
| 12 | + /// <summary> |
| 13 | + /// Provides an easy way to create different "views" of the same index. A filter can be defined using Query DSL and is |
| 14 | + /// applied to all Search, Count, Delete By Query and More Like This operations with this alias. |
| 15 | + /// </summary> |
| 16 | + [DataMember(Name = "filter")] |
10 | 17 | QueryContainer Filter { get; set; } |
11 | 18 |
|
12 | | - [DataMember(Name ="index_routing")] |
| 19 | + /// <summary> |
| 20 | + /// Associates routing values with aliases for index operations. This feature can be used together |
| 21 | + /// with filtering aliases in order to avoid unnecessary shard operations. |
| 22 | + /// </summary> |
| 23 | + [DataMember(Name = "index_routing")] |
13 | 24 | Routing IndexRouting { get; set; } |
14 | 25 |
|
15 | | - [DataMember(Name ="routing")] |
| 26 | + /// <inheritdoc cref="AliasAddOperation.IsWriteIndex" /> |
| 27 | + [DataMember(Name = "is_write_index")] |
| 28 | + bool? IsWriteIndex { get; set; } |
| 29 | + |
| 30 | + /// <summary> |
| 31 | + /// Associates routing values with aliases for both index and search operations. This feature can be used together |
| 32 | + /// with filtering aliases in order to avoid unnecessary shard operations. |
| 33 | + /// </summary> |
| 34 | + [DataMember(Name = "routing")] |
16 | 35 | Routing Routing { get; set; } |
17 | 36 |
|
18 | | - [DataMember(Name ="search_routing")] |
| 37 | + /// <summary> |
| 38 | + /// Associates routing values with aliases for search operations. This feature can be used together |
| 39 | + /// with filtering aliases in order to avoid unnecessary shard operations. |
| 40 | + /// </summary> |
| 41 | + [DataMember(Name = "search_routing")] |
19 | 42 | Routing SearchRouting { get; set; } |
20 | 43 | } |
21 | 44 |
|
| 45 | + /// <inheritdoc /> |
22 | 46 | public class Alias : IAlias |
23 | 47 | { |
| 48 | + /// <inheritdoc /> |
24 | 49 | public QueryContainer Filter { get; set; } |
| 50 | + /// <inheritdoc /> |
25 | 51 | public Routing IndexRouting { get; set; } |
| 52 | + /// <inheritdoc /> |
| 53 | + public bool? IsWriteIndex { get; set; } |
| 54 | + /// <inheritdoc /> |
26 | 55 | public Routing Routing { get; set; } |
| 56 | + /// <inheritdoc /> |
27 | 57 | public Routing SearchRouting { get; set; } |
28 | 58 | } |
29 | 59 |
|
| 60 | + /// <inheritdoc cref="IAlias" /> |
30 | 61 | public class AliasDescriptor : DescriptorBase<AliasDescriptor, IAlias>, IAlias |
31 | 62 | { |
32 | 63 | QueryContainer IAlias.Filter { get; set; } |
33 | 64 | Routing IAlias.IndexRouting { get; set; } |
| 65 | + bool? IAlias.IsWriteIndex { get; set; } |
34 | 66 | Routing IAlias.Routing { get; set; } |
35 | 67 | Routing IAlias.SearchRouting { get; set; } |
36 | 68 |
|
37 | | - public AliasDescriptor Routing(Routing routing) => Assign(routing, (a, v) => a.Routing = v); |
| 69 | + /// <inheritdoc cref="IAlias.Filter" /> |
| 70 | + public AliasDescriptor Filter<T>(Func<QueryContainerDescriptor<T>, QueryContainer> filterSelector) where T : class => |
| 71 | + Assign(filterSelector, (a, v) => a.Filter = v?.Invoke(new QueryContainerDescriptor<T>())); |
38 | 72 |
|
| 73 | + /// <inheritdoc cref="IAlias.IndexRouting" /> |
39 | 74 | public AliasDescriptor IndexRouting(Routing indexRouting) => Assign(indexRouting, (a, v) => a.IndexRouting = v); |
40 | 75 |
|
41 | | - public AliasDescriptor SearchRouting(Routing searchRouting) => Assign(searchRouting, (a, v) => a.SearchRouting = v); |
| 76 | + /// <inheritdoc cref="IAlias.IsWriteIndex" /> |
| 77 | + public AliasDescriptor IsWriteIndex(bool? isWriteIndex = true) => Assign(isWriteIndex, (a, v) => a.IsWriteIndex = v); |
42 | 78 |
|
43 | | - public AliasDescriptor Filter<T>(Func<QueryContainerDescriptor<T>, QueryContainer> filterSelector) where T : class => |
44 | | - Assign(filterSelector, (a, v) => a.Filter = v?.Invoke(new QueryContainerDescriptor<T>())); |
| 79 | + /// <inheritdoc cref="IAlias.Routing" /> |
| 80 | + public AliasDescriptor Routing(Routing routing) => Assign(routing, (a, v) => a.Routing = v); |
| 81 | + |
| 82 | + /// <inheritdoc cref="IAlias.SearchRouting" /> |
| 83 | + public AliasDescriptor SearchRouting(Routing searchRouting) => Assign(searchRouting, (a, v) => a.SearchRouting = v); |
45 | 84 | } |
46 | 85 | } |
0 commit comments