在搜索时嵌套排除属性

时间:2015-09-30 09:04:01

标签: c# elasticsearch nest

我从所有属性大对象中搜索字符串:

q => q.QueryString(qfqqs => qfqqs.Query(mainSearch).DefaultOperator(Operator.And));

此对象包含messageText属性和许多其他属性。 现在,我通过messageText进行任务更改搜索,并通过其他属性进行搜索。 按消息文本搜索:

q => q.QueryString(qs => qs.DefaultField(o => o.PropertyTextPart).Query(mainSearch).DefaultOperator(Operator.And));                            

要搜索其他属性,我需要过滤器描述符。但是,如果我将添加所有其他属性(超过30),它将曲线代码(因为如果有人更改属性列表,他必须将此代码更改为)。如何在搜索中排除一个字段,如:

q => q.QueryString(qfqqs => qfqqs.Query(mainSearch).DefaultOperator(Operator.And));  

1 个答案:

答案 0 :(得分:0)

在映射模型时,您可以使用属性排除Field

[Number(IncludeInAll = false)]

然后,当您进行DefaultField("_all").Query(query)搜索时,Field将被忽略,但是当您找到该元素时,查询忽略字段将在模型中恢复。

如今,我正在寻找将该属性dinamyc变成查询的方法。

我希望它对你有用!