问题标签 [spring-data-elasticsearch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
elasticsearch - 以点/点结尾的 Elasticsearch 查询字符串,即 +foo.*
我有一个包含很多街道的索引。索引如下所示:
默认搜索查询如下所示:
因此查询foo
(sent as +foo*
) 或foostr
(sent as +foostr*
) 会得到Foostr. 9
,这是正确的。但是查询foostr.
(发送到 Elasticsearch 作为+foostr.*
)没有结果,但为什么呢?
我使用标准分析器和没有特殊选项的查询字符串。(使用 时也返回 0 个结果http://127.0.0.1:9200/test/streets?q=+foostr.*
)。
顺便提一句。这:(http://127.0.0.1:9200/test/streets?q=+foostr.
与上面没有星号的相同)找到正确的结果
问题:
为什么会这样?
如何避免这种行为?
elasticsearch - elasticsearch节点和传输客户端的询问
我已将应用程序配置为在测试中使用弹性搜索节点客户端,在生产/云和开发中使用弹性搜索传输客户端。
data
当我运行测试时,我最终在我的项目中得到了一个目录。
请参阅以下目录结构:
这是我的云/开发配置:
这是我的测试配置:
有人可以解释一下这个data
目录是什么,是由节点客户端还是传输客户端编写的?
elasticsearch - Spring数据弹性搜索-查询-全文搜索
我正在尝试使用弹性搜索进行全文搜索和使用 Spring 数据将弹性搜索与我的应用程序集成。
例如,
有 6 个字段需要索引。
1) 名字 2) 姓氏 3) 职务 4) 位置 5) 行业 6) 电子邮件
http://localhost:9200/test/_mapping/
我可以在映射中看到这些字段。
现在,我想使用搜索输入对这些字段进行搜索。
例如,当我搜索“mike 123”时,它必须搜索所有这 6 个字段。
在 Spring 数据存储库中,
以下方法仅适用于在 firstName 中搜索。
但是,我想搜索所有字段。
我试过了,
在这里,即使输入字符串相同,我也需要传递与 6 个参数相同的输入。此外,具有多个字段的方法名称看起来更大。
无论如何,使用@Query 或 ....
喜欢,
此外,应该为其中一个领域提供提升。
例如,
当我搜索“mike mat”时,如果名字中有任何匹配项,即使其他字段完全匹配,那也应该是结果中的第一个。
谢谢
elasticsearch - 带有 const_score 的 spring-data-elasticsearch
我需要运行以下查询:
但我不能用 spring-data-elasticsearch 轻松运行它。
- 有没有办法做到这一点?
- spring-data-elasticsearch 是否支持所有的 elasticsearch 查询 DSL?
elasticsearch - Spring Data Elasticsearch 的 @Field 注释不起作用
我在 pom.xml 中有一个带有 Spring Data Elasticsearch 插件的 Spring Boot 应用程序。我创建了一个我想索引的文档类:
我还为这个类创建了一个存储库:
我做了一个测试,使用存储库索引三个示例对象。它很长,所以我会发布它只需要。事实上,在 ES 服务器中创建的映射忽略了 @Field 注解设置的配置:
没有关于分析器的信息,“someTransientData”被存储和索引,并且 dateUp 被键入为 Long 而不是 Date。
直接从服务器请求的示例文档:
我还注意到,当我第二次运行应用程序时,在启动时出现此错误,仅在索引已经存在时打印:
错误 19452 --- [main] .dersAbstractElasticsearchRepository:加载弹性搜索节点失败:org.elasticsearch.index.mapper.MergeMappingException:合并失败并失败{[mapper [someTransientData] 具有不同的索引值,mapper [someTransientData] 具有不同的标记化值, mapper [someTransientData] 有不同的 index_analyzer, 对象映射 [sectors] 不能从非嵌套更改为嵌套, mapper [operationName] 有不同的存储值, mapper [operationName] 有不同的 index_analyzer, mapper [dateUp] 的类型不同,current_type [long],merged_type [date]]}
这是 Spring Data Elastic Search 的错误还是我做错了什么?
我尝试了 spring boot 提供的稳定版本和 spring-data-elasticsearch 的最后一个快照。我还尝试了插件提供的嵌入式 Elasticsearch 服务器和当前版本的外部服务器。我总是得到相同的结果。
solr - 使用 Lucene/Solr/ElasticSearch 的开箱即用联合搜索
我有一个要求,当将特定查询提交到搜索服务器时,我想搜索两个或多个搜索索引。有没有一种方法可以在使用 Lucene/ Solr/弹性搜索?如果这是不可能的,我正在尝试在 API 级别上设置一些东西,其中搜索索引从搜索客户端中抽象出来,其中查询提交给 API 和引擎盖下的 API 将搜索与两个或多个搜索并行索引并组合结果并将其发送回?
这里的重点是,如果有这样的 API 框架可用,或者即使可以开箱即用地使用 Lucene/Solr/Elasticsearch 或者只需安装插件并配置它,我也不想重新发明轮子?
elasticsearch - Elastic Search - 使用通配符进行精确短语搜索
我正在寻找有关使用通配符进行精确短语搜索的帮助。
上面的查询,返回以下结果。
1) Java 搜索 2) 弹性 Java 搜索
尾随通配符有效。
但是,当我像下面的查询一样搜索时,
它不会返回任何内容,因为没有任何内容与“ava Se”完全匹配。我期待与上述相同的结果。
前导通配符不起作用。有没有办法做到这一点?
谢谢, Baskar.S
spring-data-elasticsearch - Spring data elasticsearch,找不到路径下的嵌套对象
我正在尝试使用 Spring 数据弹性搜索。我还阅读了这个Spring Data Elastic Search with Nested Fields and mapping
得到以下异常。
原因:org.elasticsearch.action.search.SearchPhaseExecutionException: Failed to execute phase [dfs], all shards failed;shardFailures {[-EbBygdLRkKs49wqsf5ewQ][support_team_idx][0]: RemoteTransportException[[Artie][local[6]][indices:data/read/search[phase/dfs]]]; 嵌套:SearchParseException [[support_team_idx][0]:来自[0],大小[10]:解析失败[无法解析源[{“from”:0,“size”:10,“query”:{“nested” :{"query":{"bool":{"must":[{"term":{"supportteam.name":"test"}},{"term":{"supportteam.description":"test" }}]}},"path":"SupportTeam"}}}]]]; 嵌套:QueryParsingException[[support_team_idx] [nested] 未能在路径 [SupportTeam]] 下找到嵌套对象;}
实体:
……
spring - 使用 elasticsearch.yml 中的默认副本配置
在使用 ElasticsearchTemplate 创建新索引时,我想使用在 elasticsearch.yml 中指定的副本数的设置。这样做的目的是根据 ES 运行的环境来设置副本的数量。例如:在 live 中使用 4 个副本,在 test 中使用 2 个副本。
我认为这可以通过在每个环境的 elasticsearch.yml 中将副本数设置为适当的值来实现。
但是,当我使用 ElasticsearchTemplate(例如,使用 Spring Data ES 存储库)创建新索引时,创建索引请求包含来自 @Document 注释的默认值 1。
因此,不使用 elasticsearch.yml 中的默认值。有没有办法强制使用每个环境的默认设置?
我认为一种方法可以是使用索引模板,但还有另一种方法吗?
谢谢
spring-data-elasticsearch - Spring数据elasticsearch CRUD配置
我在配置 spring data elasticsearch 时遇到问题,我按照此处提到的过程Spring bean configuration for Crud Repositories。但我收到错误:
线程“主”org.springframework.beans.factory.BeanCreationException 中的异常:创建名为“customerService”的 bean 时出错:资源依赖项注入失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“customerRepo”的 bean 时出错:设置 bean 属性“elasticsearchOperations”时无法解析对 bean“elasticsearchTemplate”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建类路径资源 [spring-repository.xml] 中定义的名称为“elasticsearchTemplate”的 bean 时出错:bean 的实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 bean 类 [org.springframework.data.elasticsearch.core. ElasticsearchTemplate]:构造函数抛出异常;嵌套异常是 java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z
这是代码:
客户服务.java
客户.java
客户回购.java
主类.java
弹簧客户.xml
spring-repository.xml
我不知道为什么它不起作用。请帮帮我。