Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch Hibernate搜索:在spatial()查询中使用弹性搜索函数?_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Geolocation_Hibernate Criteria_Hibernate Search - Fatal编程技术网 elasticsearch Hibernate搜索:在spatial()查询中使用弹性搜索函数?,elasticsearch,geolocation,hibernate-criteria,hibernate-search,elasticsearch,Geolocation,Hibernate Criteria,Hibernate Search" /> elasticsearch Hibernate搜索:在spatial()查询中使用弹性搜索函数?,elasticsearch,geolocation,hibernate-criteria,hibernate-search,elasticsearch,Geolocation,Hibernate Criteria,Hibernate Search" />

elasticsearch Hibernate搜索:在spatial()查询中使用弹性搜索函数?

elasticsearch Hibernate搜索:在spatial()查询中使用弹性搜索函数?,elasticsearch,geolocation,hibernate-criteria,hibernate-search,elasticsearch,Geolocation,Hibernate Criteria,Hibernate Search,我有不同的字段来进行查询,比如标题、文本和位置。我想在位置字段上增加权重。我从Elastic Search中找到了decay_函数,根据以下示例,它完全满足了我的需求:。 但是,我使用的系统使用Hibernate搜索查询。我找到了Spatial()过滤器,但是有没有办法用decay_函数替换“infrance()”呢?或者通过人格化的功能或类似的东西 我知道我可以使用within(),但这意味着我必须定义特定的范围。它可以工作,但在我的例子中,它不是最佳解决方案。不使用DSL本身(目前,在6种情

我有不同的字段来进行查询,比如标题、文本和位置。我想在位置字段上增加权重。我从Elastic Search中找到了decay_函数,根据以下示例,它完全满足了我的需求:。 但是,我使用的系统使用Hibernate搜索查询。我找到了Spatial()过滤器,但是有没有办法用decay_函数替换“infrance()”呢?或者通过人格化的功能或类似的东西

我知道我可以使用within(),但这意味着我必须定义特定的范围。它可以工作,但在我的例子中,它不是最佳解决方案。

不使用DSL本身(目前,在6种情况下,可以在DSL中集成本机谓词)

但您可以为这个特定案例创建一个本地Elasticsearch查询,如我们的文档中所述:

FullTextEntityManager fullTextEm=Search.getFullTextEntityManager(entityManager);
QueryDescriptor query=ElasticsearchQueries.fromJson(
“{‘查询’:{‘匹配’:{‘姓氏’:‘品牌’}}”);
List result=fullTextEm.createFullTextQuery(查询,GolfPlayer.class).getResultList();
通过这种方式,您可以使用任何您认为合适的Elasticsearch结构。您仍然可以将DSL用于其他受支持的查询


与您的问题无关:我看到您是一名学生,您是否使用Hibernate搜索学校项目?让Search在法国学校任教会很好:)。

不,我目前在实习时使用它~是的,我同意这一点;elastic+hibernate很有趣,在这一年中,我有几个shcool项目可以使用它。然而,我想今年的课程已经很繁重了,所以老师们必须做出选择,并采取一些捷径,在课堂上关注一些要点。顺便说一句,这个解决方案似乎有效,但我正在努力解决语法问题。我会在没有错误的情况下解决这个问题!如果您手动编写JSON,可能会有所帮助。另一个选项是使用JSON库来编写它。在您的案例中不需要它,但请记住,如果您需要它,您还可以获得底层Elasticsearch客户端,并使用它执行任何操作:。这对于聚合可能很有用,因为我们现在没有为它公开任何内容。我们成功地获得了正确的语法,但现在我遇到了“scale”字段的问题。如示例中所示,我输入了“30km”,但得到的只是一个数字\u格式\u异常。这一定是因为我没有使用地理点,而是在我的对象中具有双纬度和双经度属性(在标题、文本和所有内容旁边)。所以我使用了两次高斯衰减函数,一次在纬度上,一次在经度上(不确定它是这样工作的,但现在不是问题所在)。+我用经度(at)和纬度(at)为这些字段编制了索引,但是当我用ElasticsearchQueries调用ES时,它仍然有用吗?fromJson?我希望避免使用地理点,因为我必须更改数据库表,从而重构所有地方的大量代码。但除了这个,我想不出任何解决办法。
FullTextEntityManager fullTextEm = Search.getFullTextEntityManager(entityManager);
QueryDescriptor query = ElasticsearchQueries.fromJson(
    "{ 'query': { 'match' : { 'lastName' : 'Brand' } } }");
List<?> result = fullTextEm.createFullTextQuery(query, GolfPlayer.class).getResultList();