NEST弹性搜索:FilterInputs术语和术语之间的差异?

时间:2016-02-07 20:35:19

标签: c# .net elasticsearch nest filter-input

FilterInputs mustfilters;
mustfilters &= ms.Term("cityId", filterInputs.cities);
mustfilters &= ms.Terms("cityIds", filterInputs.cities);

上述2行之间会有什么区别?

到目前为止,我已经测试过,第二个将允许带有kye cityIds的文档中的多个城市。任何与filterInputs.cities =>匹配的任何内容记录被退回。

虽然第一个只允许一次city.If匹配=>记录返回否则。

请确认。

1 个答案:

答案 0 :(得分:1)

Term只允许匹配一个字词。根据文件:

  

术语查询查找包含倒排索引中指定的确切术语的文档。

请参阅here

虽然Terms允许您指定多个字词并匹配其中任何字词。它与in中的Sql类似。根据文件:

  

条款查询过滤包含与任何提供的字词匹配的字段(未分析)的文档。

请参阅here