小编Val*_*Val的帖子

升级到Rails 4.2.5.1后出现VersionConflictEngineException

在将Rails更新到4.2.5.1并更新用户文档后,我不时会收到此异常

Elasticsearch :: Transport :: Transport :: Errors :: Conflict:[409] {"error":"VersionConflictEngineException [[users] [0] [user] [1]:版本冲突,当前[7],提供[6] ]", "状态":409}

但是,我没有在更新请求中传递任何显式版本.我想两个不同的进程正在尝试同时更新同一个文档,但除了Rails版本之外它没有任何改变.

我正在使用elasticsearch-model(0.1.8)elasticsearch-rails(0.1.8)elasticsearch(1.0.15)elasticsearch-api(1.0.15)和elasticsearch-transport(1.0.15)

elasticsearch版本是Version:1.2.2,Build:9902f08/2014-07-09T12:02:32Z,JVM:1.7.0_65

ruby-on-rails elasticsearch elasticsearch-model elasticsearch-rails

7
推荐指数
0
解决办法
797
查看次数

聚合0计数弹性搜索

弹性索引(id,name,dept,status)中的文档集合为{1,pone,d1,m2} {2,ptwo,d1,m2},{3,ptwo,d2,m1}我想查询到通过dept获取结果组的'm2'状态.同样的结果集应包括零计数的记录为{d1:2},{d2:0}.我们如何使用Elastic Search aggs实现它?

 {
   "query": {
        "match": {
           "status": "m2"
        }
    },
    "aggs" : {
        "results" : {
            "terms" : {
               "field" : "dept"
            }
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

此查询返回'dept'而不计数为{d1:2}.此外,我还希望将0计数的记录设为{d1:2},{d2:0}.谢谢

aggregation elasticsearch

6
推荐指数
1
解决办法
1674
查看次数

使用elasticsearch匹配嵌套数组中的所有值

我试图使用elasticsearch来匹配嵌套数组中的所有值.例如.我的搜索数组是["1","2","3","4","5","6","7","8","9"] ,我的文档包含一系列数组

"arr":[
["1","2","10"],
["4","5"],
["8","9","11"]
]
Run Code Online (Sandbox Code Playgroud)

我需要匹配嵌套数组中的所有值,但只有一个嵌套数组需要匹配文档才能匹配.所以,在这个例子中仅第二嵌套阵列是匹配,因为"4""5"都是本搜索数组中(因此我的文档是一个匹配).我应该使用什么样的查询来实现这一目标?

arrays intersection elasticsearch

5
推荐指数
1
解决办法
975
查看次数

如果在弹性搜索中选择阵列字段的另一个聚合选项,如何获取将添加的文档的数量

假设我们有四个带有tags字段的文档.它可以包含多个字符串,比方说foo,barbaz.

docA.tags = ['foo']
docB.tags = ['bar']
docC.tags = ['foo', 'bar']
docD.tags = ['foo', 'baz']
Run Code Online (Sandbox Code Playgroud)

我使用聚合查询文档,因此我获得了四个文档和三个桶的列表,其中包含与特定标记匹配的计数.

buckets = [
  {key: 'bar', doc_count: 2}, // docB, docC
  {key: 'foo', doc_count: 3}, // docA, docC, docD
  {key: 'baz', doc_count: 1}  // docD
]
Run Code Online (Sandbox Code Playgroud)

如果我现在运行另一个查询,并添加这些标签中的一个-让说foo-作为一个条件过滤器来查询,我只得到了文档(docA,docC,docD有此标记).这就是我想要的.

但我还得到了另一个可能的聚合列表,其中包含更新的计数.

buckets = [
  {key: 'bar', doc_count: 1}, // docC
  {key: 'baz', doc_count: 1}, // docD
]
Run Code Online (Sandbox Code Playgroud)

但这些计数与发生的事情并不完全一致.它们反映了与两个标签匹配的文档数,即我在第一个位置选择的标签(foo)和一个标签(bar或 …

search elasticsearch

5
推荐指数
1
解决办法
295
查看次数

如何使用mongoosastic + AJAX进行即时搜索?

我已经成功配置了mongoosastic,我尝试搜索并且它工作正常,但是当涉及到前端我不确定如何实现这一点时,我尝试了很多方法但是无法想出一个好的解决方案

这是代码.

// For the Search API
    router.post('/api/search/', function(req, res, next) {
      Job.search(
        {
          query_string:
          { query: req.body.search }
        } , function(err, results) {
            if (err) return next(err);
            res.json(results);
        });
    });
Run Code Online (Sandbox Code Playgroud)

因此,每当我搜索与"工程师"相关的内容时,我都会得到一个json数据

在此输入图像描述

所以后端确实完美运行.

但是当涉及到jquery和ajax时,我总是得到不好的请求

逻辑:每当插入某些内容然后发布并找到该结果.

这是前端jquery代码.

  $('#search').keyup(function() {

    var search_term = $(this).val();


    $.ajax({
      type: "POST",
      url: "/api/search",
      success: function(){
        $('search_results').html(search_term);
      },
      error: function(data){
        alert('Error', data);
      }
    });

  });
Run Code Online (Sandbox Code Playgroud)

HTML

<input type="text" class="form-control input-lg" id="search" name="search" placeholder="Search for part-time..." />



 <div id="search_results">


    </div>
Run Code Online (Sandbox Code Playgroud)

如何将json结果插入search_results

ajax jquery node.js elasticsearch mongoosastic

5
推荐指数
1
解决办法
388
查看次数

ElasticSearch:如何在一个或多个索引中的所有类型的任何字段中搜索值?

我有两个指数my_index_1my_index_2.在这些索引中,我有以下文档类型:

my_index_1:

  • 组织
  • 角色
  • 技能

my_index_2:

  • 制品
  • 服务
  • 专利
  • 商标
  • 服务标志

每种类型都有不同的字段.

我的问题: 在任何一个甚至两个索引中,在任何类型的任何字段中查询字符串"abc"的最佳方法是什么?

我没有在文档中看到任何有助于这种搜索的内容.有什么东西可能看起来像:

$ curl -XPOST 'localhost:9200/_search?pretty' -d '
{
  "query": { "match": { *: "abc" } }
}'
Run Code Online (Sandbox Code Playgroud)

在此先感谢您提供的任何帮助.

match elasticsearch

5
推荐指数
2
解决办法
8556
查看次数

Elasticsearch-如果不匹配,请使用下一个查询

我已经在互联网上找了几天,但是找不到正确的答案。也许有人可以帮忙吗?

如果我在elasticsearch中的查询没有命中,则必须在其他字段中进行搜索。如果有结果,则仅显示这些结果而不在其他字段中进行搜索。我当前的解决方案是增强字段(ean,model,imodel),但在其他字段(title,desc)中进行搜索。因此,它返回数百个不相关的项目。

{
   "from": 0,
   "size": "16",
   "query": {
      "bool": {
         "should": [
            {
               "multi_match": {
                  "query": "63090300",
                  "fields": [
                     "ean^100",
                     "model^100",
                     "imodel^100"
                  ]
               }
            },
            {
               "match": {
                  "title_de": {
                     "query": "63090300",
                     "boost": "5"
                  }
               }
            },
            {
               "match": {
                  "title_de": {
                     "query": "63090300",
                     "type": "phrase",
                     "analyzer": "trigrams",
                     "fuzziness": "1"
                  }
               }
            },
            {
               "multi_match": {
                  "query": "63090300",
                  "fields": [
                     "desc_de"
                  ],
                  "operator": "and"
               }
            }
         ]
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

elasticsearch

5
推荐指数
0
解决办法
729
查看次数

elastic4s:使用rawQuery得分保持在1

我们在ElasticSearch 2.2.0中使用了elastic4s.许多查询作为JSON存储在磁盘上,并通过elastic4s驱动程序用作rawQuery.结果中的分数在通过命令行提交的查询或elastic4s驱动程序之间不同.elastic4s驱动程序始终为所有结果返回得分1,而命令行执行产生两个不同的得分(针对不同的数据类型).

elastic4s的代码:

   val searchResult = client.execute {
      search in indexName types(product, company, orga, "User", "Workplace") rawQuery preparedQuery sourceInclude(preparedSourceField:_*) sort {sortDefintions:_*} start start limit limit 
    }.await
Run Code Online (Sandbox Code Playgroud)

请注意,我删除了任何内容,但rawQuery preparedQuery没有更改分数1.通过命令行的完整查询很长:

{
    "query": {
        "bool": {
            "must": [
                {
                    "multi_match": {
                        "query": "${search}",
                        "fields": [
                            "name",
                            "abbreviation",
                            "articleNumberManufacturer",
                            "productLine",
                            "productTitle^10",
                            "productSubtitle",
                            "productDescription",
                            "manufacturerRef.name",
                            "props"
                        ]
                    }
                }
            ],
            "filter": [
                {
                    "or": [
                        {
                            "bool": {
                                "must": [
                                    {
                                        "type": {
                                            "value": "Product"
                                        }
                                    },
                                    {
                                        "term": …
Run Code Online (Sandbox Code Playgroud)

scala elasticsearch elastic4s

5
推荐指数
1
解决办法
440
查看次数

在elasticsearch中存储不需要搜索、分析或聚合的文本的最佳方式?

对于不再超过 256 个字符的文本字段,当该字段不需要时,在 elasticsearch 5.x 中仅存储文本的更好解决方案是什么:

  • 可搜索的
  • 索引
  • 分析过的
  • 可排序...

选项 1) 设置映射到索引 = false 的文本

选项 2) 将映射设置为索引 = false、doc_values = false 的关键字

什么更节省空间?或者这两个映射与这些设置有什么区别?

谢谢。

elasticsearch elasticsearch-5

5
推荐指数
1
解决办法
878
查看次数

如何使用 opensearch-js 签署请求?

我需要签署 Opensearch 请求。我正在尝试使用opensearch-jsaws-es-connection做到这一点。

\n
import {\n  createAWSConnection,\n  awsGetCredentials,\n} from '@acuris/aws-es-connection';\nimport { Client } from "@opensearch-project/opensearch";\nimport { esConfig } from "./config";\n\nexport const getClient = async () => {\n  const awsCredentials = await awsGetCredentials();\n  const AWSConnection = createAWSConnection(awsCredentials);\n  const client = new Client({\n    ...AWSConnection,\n    node: esConfig.uri\n  });\n  return client;\n};\n
Run Code Online (Sandbox Code Playgroud)\n

但是,此代码抱怨类型与解构...语法不兼容。

\n
S2345: Argument of type '{ node: string; nodes?: string | string[] | NodeOptions | NodeOptions[]; Connection?: typeof Connection; ConnectionPool?: typeof ConnectionPool; ... 26 more …
Run Code Online (Sandbox Code Playgroud)

opensearch node.js

5
推荐指数
0
解决办法
382
查看次数