标签: booleanquery

在全文布尔模式下对多个单词使用减号

我只是用mysql做了一堆测试,full text boolean mode从我的测试来看,似乎你不能在多个单词上使用减号?

我有两行例如..

id,name
1,2011-12 Fleer Retro auto jordan non
2,1999 jordan non auto
Run Code Online (Sandbox Code Playgroud)

如果我运行以下查询:

SELECT auction_id,`name`,description FROM auctions WHERE MATCH(`name`) AGAINST('+jordan +auto -non' IN BOOLEAN MODE);
Run Code Online (Sandbox Code Playgroud)

两行都没有按预期显示.但是,如果我运行此查询:

SELECT auction_id,`name`,description FROM auctions WHERE MATCH(`name`) AGAINST('+jordan +auto -"non auto"' IN BOOLEAN MODE);
Run Code Online (Sandbox Code Playgroud)

两行都不显示(相同的结果).不应该排1回来吗?

编辑:ft_min_word_len的设置为2,我已禁用我的停用词文件,因此它与此无关.

小提琴:http://sqlfiddle.com/#!2/d1987/4

但是,似乎小提琴使用默认的停用词文件,因此使用"非"字测试它不起作用.

mysql full-text-search booleanquery

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

如何使用 Java Api 在 ElasticSearch 中执行 bool 查询?

我正在尝试针对我的 elasticSearch 发送 bool 查询,以过滤掉文档。如何在 Java 中使用 BooleanQueryBuilder Api 过滤布尔表达式,如 (A AND B AND C) AND (D OR E OR F) AND G?我尝试使用过滤器方法,但没有得到任何结果。例如:

例如,假设 A、B、C、D、E、F、G 是属性“name”必须匹配“Robin”的事件。

private QueryBuilder getQueryBuilder() {

        BoolQueryBuilder boolQueryBuilder1 = QueryBuilders
                .boolQuery()
                .filter(QueryBuilders.matchQuery(D).operator(Operator.OR))
                .filter(QueryBuilders.matchQuery(E).operator(Operator.OR))
                .filter(F);

        BoolQueryBuilder boolQueryBuilder2 = QueryBuilders
                .boolQuery()
                .filter(QueryBuilders.matchQuery(A).operator(Operator.AND))
                .filter(QueryBuilders.matchQuery(B).operator(Operator.AND))
                .filter(QueryBuilders.matchQuery(C));

        BoolQueryBuilder boolQueryBuilder3 = QueryBuilders
                .boolQuery()
                .filter(G);

        BoolQueryBuilder boolQueryBuilder = QueryBuilders
                .boolQuery()
                .filter(boolQueryBuilder1)
                .filter(boolQueryBuilder2)
                .filter(boolQueryBuilder3);

        return boolQueryBuilder;

}
Run Code Online (Sandbox Code Playgroud)

我知道这个例子不是很好,但我希望你能帮助我!谢谢!

java elasticsearch booleanquery

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

布尔代数:证明这一点

我在布尔代数中遇到以下问题时出现问题,即

A + A'B = A + B.

我需要证明以上部分.我的意思是它已经减少了我不能进一步减少它.

boolean-logic booleanquery

4
推荐指数
2
解决办法
3万
查看次数

Nest Elasticsearch,结合了Must和Should的bool查询

我想按年份,格式和内容过滤一组文档.

n伪SQL:

SELECT * FROM /test/document
WHERE 
((format=f1|| format=f2||...|| format=fn) AND 
(Year!=2013 AND Year!=2015) AND 
(content like %c1% || content like %c2% ||...|| content like %cn%))
Run Code Online (Sandbox Code Playgroud)

如您所见,格式和内容项的数量是动态的,将由用户选择.到目前为止,我想出了如何分别对每个字段进行动态查询,然后使用bool查询将它们组合起来,如下面的代码所示;

// For YEAR
QueryContainer qYear=null;
    foreach (var year in years)
    {
        qYear |= new TermQuery() { Field = "year", Value = year };     
    }

// For FORMAT
 var qformat = new List<QueryContainer>();
 foreach (var format in txtDocs)
   {                    
     qformat.Add(Query<Document>.Match(m => m.OnField(p => p.Format).Query(format)));                
   }

  // For CONTENT
  var qc = new List<QueryContainer>();
   qc.Add(Query<Document>.Match(m …
Run Code Online (Sandbox Code Playgroud)

c# elasticsearch booleanquery nest

4
推荐指数
1
解决办法
3895
查看次数

如何在elasticsearch中正确编写布尔值或逻辑?

我想用loId=6 AND (actionType = "SAVE_DATA" OR 抓取所有文件actionType = "OPEN_SCREEN").

我写错了这个逻辑吗?

为什么我的查询返回0结果?

注意:我接受查询或过滤器来解决此问题.

这些是一些示例文档:

 {
    "_index": "logs",
    "_type": "record",
    "_id": "eIIt3vtrSxmdOVGClQmN3w",
    "_score": 1,
    "_source": {
       "timestamp": 1373569919000,
       "uid": 6,
       "paId": 56298,
       "loId": 6,
       "prId": 2,
       "vId": 6577,
       "actionType": "SAVE_DATA"
    }
 },
 {
    "_index": "logs",
    "_type": "record",
    "_id": "yQGCia6qRYCImZLyH7DrEA",
    "_score": 1,
    "_source": {
       "timestamp": 1373570314000,
       "uid": 6,
       "paId": 56641,
       "loId": 6,
       "prId": 2,
       "vId": 6578,
       "actionType": "CHECK_IN"
    }
 },
 {
    "_index": "logs",
    "_type": "record",
    "_id": "2raajrNKTKeRKG88wiNPpw",
    "_score": 1, …
Run Code Online (Sandbox Code Playgroud)

boolean-logic elasticsearch booleanquery

3
推荐指数
1
解决办法
4843
查看次数

Nest Elastic - 构建动态嵌套查询

我必须使用Nest查询嵌套对象,但查询是以动态方式构建的.下面的代码演示了以静态方式对嵌套"书籍"使用查询

QueryContainer qry;
         qry = new QueryStringQuery()
         {
             DefaultField = "name",
             DefaultOperator = Operator.And,
             Query = "salman"
         };

         QueryContainer qry1 = null;

         qry1 = new RangeQuery() // used to search for range ( from , to)
         {
             Field = "modified",
             GreaterThanOrEqualTo = Convert.ToDateTime("21/12/2015").ToString("dd/MM/yyyy"),
         };

         QueryContainer all = qry && qry1;

            var results = elastic.Search<Document>(s => s
               .Query(q => q
                    .Bool(qb => qb
                        .Must(all)))
                .Filter(f =>
                        f.Nested(n => n
                             .Path("books")
                                .Filter(f3 => f3.And(
                                            f1 => f1.Term("book.isbn", "122"),
                                            f2 => f2.Term("book.author", "X")) …
Run Code Online (Sandbox Code Playgroud)

nested dynamic elasticsearch booleanquery nest

3
推荐指数
1
解决办法
3908
查看次数

在 R 编程中,&amp; 与 &amp;&amp; 和 | 之间有什么区别?对||

我知道 && 和 || 的部分 编写更高效的代码,因为它们在链中进行的测试次数最少,并且一旦我们有足够的信息知道链的结果将是什么,就会立即爆发。

  • 只要 && 在链中遇到 FALSE,它就会停止评估并为整个链返回 FALSE。
  • 一旦|| 在链中命中 TRUE 它停止评估并为链返回 TRUE

但是我在 Garrett Grolemund 的书中读到“...双运算符并不适用于所有地方。&& 和 || 不是矢量化的,这意味着它们只能在运算符的每一侧处理单个逻辑测试......”有人可以吗向我解释强调的部分是什么意思?

做了一些简单的测试,而 & 在两个逻辑向量的相应元素之间进行元素比较时,&& 只比较第一个元素并返回 TRUE,因为运算符没有被向量化?这就是上面强调的所有部分的意思,还是还有更多意思?

c(T, F, F, F, F) & c(T, T, F, T, F)
[1]  TRUE FALSE FALSE FALSE FALSE

c(T, F, F, F, F) && c(T, T, F, T, F)
[1] TRUE

c(F, F, F, F, F) && c(T, T, F, T, F)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

使用anyand将运算符任一侧的向量折叠为一个布尔值all。 …

r boolean-expression booleanquery

2
推荐指数
1
解决办法
155
查看次数

如何在 Elasticsearch 中使用带有 function_score 的 bool 查询?

我有 3 种类型的数据 [doctor,article,place],我想根据 bool 查询匹配他们的文档。但我想给医生类型提升 3,将类型提升为 2,文章提升为 1。我有一个使用function_scorebool query匹配文档的搜索查询。但问题是它抛出了一个异常,上面写着No function with the name [bool] is registered.. 这是我的查询:

GET /my_index/doctor,article,place/_search
{
    "query": {
        "function_score": {
            "bool": {
                "should":
                [
                    {
                      "common": {
                        "title": {
                            "query":"$q",
                            "cutoff_frequency": 0.001,
                            "low_freq_operator": "and"
                            }
                        }
                    },
                    {
                        "prefix": {
                            "title": "$q"
                            }

                    },
                    {
                        "match_phrase_prefix" : {
                            "title" : {
                                "query": "$q",
                                "slop":  10
                            }
                        }
                    }
                ]
            },
            "functions":[
                {
                    "filter":{
                        "type":{
                           "value":"doctor"
                        }
                    },
                    "weight":3
                }, …
Run Code Online (Sandbox Code Playgroud)

php jquery scoring elasticsearch booleanquery

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

在 R 编程中,any 和 | 之间有什么区别?(或)布尔运算符?

  • (cond1 | cond2 | cond3 | ...)意思是“一组条件中的一个或多个是否为真?”
  • any(cond1, cond2, cond3 ....)意思是“任何条件都为真?”

因此,我们在这里不是说同样的话吗?

使用一种比另一种有什么优势吗?

r booleanquery

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

elasticsearch结合了多个查询

我有一个弹性搜索索引,用于存储有关人员的信息.为了找到特定的人我有一些问题,每个人都可以单独工作但是当我使用Bool Query将它们组合起来时,我得到一个错误.

其中一个查询是模糊搜索名称

{
  "query": {
    "fuzzy_like_this": {
      "fields": [
        "firstname",
        "lastname"
      ],
      "like_text": "Peter"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

另一个问题是搜索出生在特定日期范围内的人

{
  "query": {
    "range": {
      "birthdate": {
        "from": "1988-12-30",
        "to": "1993-12-30"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我想结合这两个查询.我的布尔查询:

{
  "query": {
    "bool": {
      "must": [
        {
          "query": {
            "fuzzy_like_this": {
              "fields": [
                "firstname",
                "lastname"
              ],
              "like_text": "Peter"
            }
          }
        },
        {
          "query": {
            "range": {
              "birthdate": {
                "from": "1988-12-30",
                "to": "1993-12-30"
              }
            }
          }
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

虽然我单独使用它们时两个查询都可以正常工作,但在组合它们时我会收到错误.在我的索引中有人名字是彼得并且出生在这个日期范围内,但即使找不到人,我也应该得到0结果而不是错误.

错误说:"error":"SearchPhaseExecutionException [无法执行阶段[查询],所有分片都失败;嵌套:QueryParsingException [[indexname]没有为[query]注册查询] …

elasticsearch booleanquery

0
推荐指数
1
解决办法
3806
查看次数