本文演示如何使用ElasticsearchCRUD进行搜索。 API提供了可以与Elasticsearch的搜索API一起使用的搜索模型。 您可以搜索同步/异步,并提供您自己的JSON字符串或使用搜索模型。
开始:
ElasticsearchCRUD提供了一些数字或搜索的可能性。 这篇文章展示了不同的例子,这些例子应该有助于理解或使它更容易使用搜索模型参数。 当配置和创建模型时,可以使用以下方法作为HTTP请求发送:
搜索模型可以发送具有过滤器,查询或两者都有。 以下是一个简单的MatchAllFilter的例子:
搜索模型包含一个Filter属性和一个Query属性,它可以包含任何查询或任何过滤器类型。 可以根据需要选择所需的对象。
以下是一个简单的PrefixQuery示例:
或者更复杂的搜索查询可能如下所示:
以上搜索将发送到Elasticsearch如下:
您还可以使用Search类的ToString()方法来显示将发送到Elasticsearch的JSON查询。 调试查询或过滤器时,这非常有用。
GeoShapeQuery的一个例子:
被翻译成:
具有线性衰减功能的FunctionScoreQuery可以这样配置:
排序
搜索模型还支持排序,正常排序,GeoPoint排序或脚本排序。
以下是Geo排序示例:
或另一个脚本排序示例:
在撰写本文时,应支持不同查询和过滤器的所有可能配置。 一些Elasticsearch文档不是实际的,一些记录的特征不起作用。 所有的搜索模型类都有使用真正的Elasticsearch 搜索引擎(elasticsearch-1.4.2)的集成测试。 这将有助于保持代码接近实际情况。