单子对象中的多个Elasticsearch连接 在控制器类中获得一个特定的单子弹性搜索
将acqclient和ncclient传递到同一接口 //acqclient和ncclient是静态可读变量 public static void Connection(){ AcqClient = new ElasticClient(AcqConnection); NcClient= new ElasticClient(NcConnection); 创建单例对象 services.AddSingleton(AcqClient); services.AddSingleton(NcClient); } 在startup.cs 中实现 service.Connection(configuration) 在我的控制器类上进行此操作时,我将获得最后一个对象 public class control
2 2024-04-25
编程技术问答社区
为什么我不能使用axios向我的Elastic Enterprise Search应用程序提出搜索请求?
因此,我想使用在此处,我不想使用弹性节点JS客户端,但是我想使用Axios进行HTTP请求. 这是我使用的代码 const url = "https://XXXXXXX38ce49e5aff1aa238e6f9195.ent-search.asia-southeast1.gcp.elastic-cloud.com/api/as/v1/engines/events/search" const headers = {"Authorization": "Bearer search-qpz4bu5o7ubb8j31r15juyrh"} const jsonData = { query: "hello there" } try { const {data} = await axios.post(url,jsonData,headers) response.status(200).send(da
6 2024-03-23
编程技术问答社区
面向单词的完成建议器(ElasticSearch 5.x)。
elasticsearch 5.x介绍了Suggester API的一些(打破)更改( 完成建议 的完成建议者 建议知道 他们属于的文件.现在,关联的文档(_source)是 作为完成建议的一部分返回. 简而言之,所有完成查询返回所有匹配文档而不仅仅是匹配的单词.问题在于问题 - 自动完成单词在多个文档中的复制. 假设我们有一个简单的映射: { "my-index": { "mappings": { "users": { "properties": { "firstName": { "type": "text" }, "lastName": { "type": "text" }, "su
4 2024-03-20
编程技术问答社区
从spark写到elasticsearch的速度非常慢
我正在处理一个文本文件,并编写从火花应用程序转换为弹性搜索的行 input.write.format("org.elasticsearch.spark.sql") .mode(SaveMode.Append) .option("es.resource", "{date}/" + dir).save() 这运行速度非常慢,大约需要8分钟才能编写287.9 MB/1513789记录. 鉴于网络延迟将始终存在. 我在本地模式下使用火花,有16个内核和64GB RAM. 我的Elasticsearch集群有一个主人和3个数据节点,每个核心有16个内核和64GB. 我正在阅读下面的文本文件 val readOptions: Map[String, String] = Map("ignoreLeadingWhiteSpace" -> "true", "ignoreTrailingWhiteSpace" -> "true", "inferS
6 2024-02-29
编程技术问答社区
为一个Elastic Search Index维护两个别名有什么用?
我最近一直在探索弹性搜索. 我一直在经历别名.我看到ES提供了一个API,可以创建多个别名,以形成一个索引: : { "actions" : [{ "add" : { "indices" : ["test1", "test2"], "alias" : "alias1" } }] } 参考: 我想知道这是什么用例. 如果别名指向多个索引,对别名的查询不会被拆分吗? 我尝试获取信息,但没有这样做,因为它在任何地方都在解释如何实现此功能,而不是用例. 将我引导到我可以获得更多信息的资源也将有所帮助. 解决方案 当您的应用程序必须从一个 旧索引到零停机时间的newIndex . 假设您要由于某些原因而又有索引,并且您不使用索引的别名,那么您需要更新应用程序以使用新的索引名称. 这是有帮助的? 假设您的应用程序正在使用别名而不是索引名称. 让我们创建一个索引: PUT /my_index 创建其别名: P
14 2024-01-23
编程技术问答社区
面向面搜索的后置过滤器和全局聚合之间有什么不同?
搜索接口中的一个常见问题是您要返回结果的选择, 但可能需要返回有关所有文档的信息. (例如,我想看所有的红色衬衫,但想知道什么 其他颜色可用). 有时将其称为"刻痕结果"或 "刻面导航". exlasticsearch参考在解释原因时很清楚,所以 我将其用作这个问题的基础. 摘要/问题:看来我可以同时使用后过滤器或全局聚合.他们俩似乎 以不同的方式提供完全相同的功能.我可能有优势或缺点 没看到吗?如果是这样,我应该使用哪个? 我在下面包含了一个完整的示例,其中包括一些文档和一个基于示例的查询,并具有两种类型的方法 在参考指南中. 选项1:后过滤器 请参阅 emasticsearch exame参考 我们能做的就是在我们的原始查询中获得更多结果,因此我们可以汇总""这些结果,之后 过滤我们的实际结果. 示例在解释它时很清楚: ,但也许您也想告诉用户其他颜色有多少个Gucci衬衫.如果您只在颜色字段上添加术语聚合,则只会恢复颜色红色,因为您的查
6 2024-01-19
编程技术问答社区
我可以在风暴爬虫中存储网页的html内容吗?
我正在使用 strom-crawler-prolastic .我能够看到这些网址和这些网址. ES_INDEXINIT.SH文件中的配置更改仅提供URL,标题,主机,文本.但是我可以使用HTML标签存储整个HTML内容? 解决方案 ES IndexerBolt从ParseFilter获取页面的内容,但对此无能为力.一种选项是修改代码,以便从传入的元组中摘取 content 字段并进行索引. 另外,您可以实现一个自定义的ParseFilter,该定制ParseFilter将页面的内容复制到元数据密钥值中,并配置该字段通过 indexer.md.mapping.mapping 在配置文件中./p> 无论哪种方式,您都需要修改es_indexinit.sh,以便ES中的字段得到索引和/或以您想要的方式存储. .
8 2023-11-30
编程技术问答社区
我如何在无痛脚本Elasticsearch 5.3中做到这一点?
我们正在尝试复制此ES插件这是插件的源代码. /** * @param params index that a scored are placed in this parameter. Initialize them here. */ @SuppressWarnings("unchecked") private PayloadVectorScoreScript(Map params) { params.entrySet(); // get field to score field = (String) params.get("field"); // get query vector vector = (List) params.get("vector"); // cosine flag
10 2023-11-17
编程技术问答社区
在Docker-Compose中为ElasticSearch使用持久性主机卷
使用以下docker-compose.yml运行Elasticsearch正在抛出错误 java.nio.file.accessdeniedexception:/usr/share/elasticsearch/data/nodes 看来,这是由于试图将/usr/share/elasticsearch/data安装在docker容器中./data/elasticsearch/data上. 尝试设置user: "1000:1000"识别以下信息,但仍会遇到相同的错误. /usr/share/elasticsearch/data/nodes的所有者/组为elasticsearch:elasticsearch /usr/share/elasticsearch/data的所有者/组为elasticsearch:root uid=1000(elasticsearch) gid=1000(elasticsearch) groups=1000(elasticsearc
20 2023-11-02
编程技术问答社区
区别嵌套值的弹性搜索查询
我正在使用高级REST客户端进行弹性搜索6.2.2.假设我在索引"文档"中有两个文档,其中包括 的"文档" { "_id": 1, "Name": "John", "FunFacts": { "FavColor": "Green", "Age": 32 } }, { "_id": 2, "Name": "Amy", "FunFacts": { "FavFood": "Pizza", "Age": 33 } } 我想找出所有独特的有趣事实及其独特的价值观,最终返回 的最终结果 { "FavColor": ["Green"], "Age": [32, 33], "FavFood": ["Pizza"] } 可以,需要多个查询来弹性搜索,但是我只有一个查询.此外,弹性搜索索引可能会变得相当大,因此我必须尽可能多地执行ES实例. 此代码似乎产生了仅
Elasticsearch。对过滤后的嵌套对象进行聚合,找到唯一的值
我在Elasticsearch 5: 中的每个文档中都有一系列对象(标签) { "tags": [ { "key": "tag1", "value": "val1" }, { "key": "tag2", "value": "val2" }, ... ] } 现在,我想找到特定标签键的唯一标签值.与此SQL查询类似的东西: SELECT DISTINCT(tags.value) FROM tags WHERE tags.key='some-key' 到目前为止,我已经来到了这个DSL: { "size": 0, "aggs": { "my_tags": { "nested": { "path": "tags" }, "aggs": {
16 2023-08-24
编程技术问答社区
弹性搜索高内存消耗
弹性搜索占据了超过25 GB的RAM.我为弹性搜索索引提供的数据约为1 GB.为什么弹性搜索需要这么多空间? 解决方案 每当弹性搜索以默认设置开头时,由于其堆积空间分配默认为1GB设置,因此消耗了大约1 GB RAM. 确保检查" jvm.options"文件 对于Ubuntu Linux OS: - {如果使用Debian文件安装} 文件位置: -/etc/elasticsearch/ 或 Windows OS: - 文件位置是提取的文件夹位置 {extacted_folder_path/config/jvm.options} 在jvm中,您需要配置JVM Heap 的某些设置 -xms1g -xmx1g -XMS1G设置为每当弹性搜索开始时,将获取1 GB的初始RAM大小. -XMX1G定义了RAM对弹性搜索JVM堆的最大分配. 您需要将这两个参数调整为4 GB或任何适合您需求的参数. -xms4g -xmx4g
12 2023-07-24
编程技术问答社区
Python elasticsearch.helpers.scan 示例
有人可以提供Python Elasticsearch帮助者客户端的扫描API示例吗? res = elasticsearch.helpers.scan(....) 如何从res对象中获得Elasticsearch的所有结果? 解决方案 文档包括一个示例,尽管如果我要正确阅读它,helpers.scan默认情况下search_type=scan,在ES 5.1 中删除.这会导致示例代码因返回No search type for [scan]而失败.我们可以用preserve_order=True对此进行修改(但是,我不确定这里的性能含义): import elasticsearch import elasticsearch.helpers es = elasticsearch.Elasticsearch() results = elasticsearch.helpers.scan(es, index="test_index", doc_type="m
30 2023-07-12
编程技术问答社区
如何在Python中用elasticsearch检索100万个文档?
如何从Python中获得100000寄存器?匹配查询仅检索10000. 解决方案 喜欢它指出的是,我会用扫描API来做到这一点. import elasticsearch from elasticsearch import Elasticsearch ES_HOST = { "host": "localhost", "port": 9200 } ES_INDEX = "index_name" ES_TYPE = "type_name" es = Elasticsearch(hosts=[ES_HOST], ) results_gen = elasticsearch.helpers.scan( es, query={"query": {"match_all": {}}}, index=ES_INDEX, doc_type=ES_TYPE ) results = list(results_gen) 您还应该阅读有关El
36 2023-07-05
编程技术问答社区
是否可以通过Elasticsearch中的映射来更新索引中的现有字段?
我已经创建了一个索引,它包含来自我的MySQL数据库的数据.我的表格中有几个字段,在Elasticsearch中,我需要它们作为不同类型的(integer&double).Elasticsearch. . 所以我知道我可以通过mapping进行以下操作: { "mappings": { "my_type": { "properties": { "userid": { "type": "text", "fielddata": true }, "responsecode": { "type": "integer" }, "chargeamount": { "type": "double" } } } } } ,但是当我将索引创建为新索引时,我已经尝试过.我
44 2023-06-18
编程技术问答社区
在.Net中模拟弹性搜索响应
我有弹性搜索巢库代码,需要模拟我从弹性搜索索引中获得的响应. var obj = service.Search(new student().Query()); var Name= obj.Aggs.Terms("Name"); 用于测试: 快速观看后,我正在创建Nest对象,但面对问题 - 聚合 - 是一个内部受保护的属性,我无法设置此值. new Nest.KeyedBucket { Key="XYZ school", KeyAsString=null, Aggregations=new Dictionary
10 2023-04-20
编程技术问答社区
弹性搜索与neo4j数据库的整合
正在尝试将Elasticsearch与我的Neo4J数据库一起使用以进行快速查询.我尝试了许多网站,但它们都是旧文章,所以我没有明确的想法.直到现在我遵循的步骤, 安装了neo4j 安装的Elasticsearch 将粘贴的弹性搜索插件复制到neo4j插件文件夹 将此线添加到neo4j中.属性文件 elasticsearch.host_name=http://localhost:9200 elasticsearch.index_spec=people:Person(first_name,last_name), places:Place(name) 这里我的问题是 如何整合Elasticsearch和Neo4J.请澄清我. 我遵循了这一点, 解决方案 您必须安装apoc过程插件( https:httpps://github. com/neo4j-contrib/neo4j-apoc-procedures ).有关ES集成的文档在这里:
40 2023-04-20
编程技术问答社区
弹性搜索小写字母分析器不返回搜索结果
我有一个基于文本的索引,如下所示.我正在尝试根据用户输入来维护基于令牌的精确搜索和模棱两可的搜索.虽然基于文本的搜索工作正常(部分搜索)在术语搜索时,它会返回数据,如果情况相同. 我确实尝试添加一个基于小写的滤镜分析仪,但这无济于事.我可以在这里做什么? 映射: "project_title": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, "projectabstract": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, 基于小写分析仪的新索
如何在Elastic中进行两列搜索?
我正在尝试使用节点JS在弹性数据库中搜索.以前我是在一个列中搜索的,该列正常工作 这是我的弹性数据 [ { "_index": "products", "_id": "V5TCK4ABs9qQzO6fmkbm", "_score": 1.0, "_ignored": [ "description.keyword" ], "_source": { "entity": "Knowledge Article", "id": "KB1112", "title": "laptop issues", "description": null, "sysid": "7c700a58-1aeb-49c6-99a0-4ce3710a1db9",
22 2023-04-19
编程技术问答社区