我目前正在调查常用术语查询的使用,因为文档有点缺乏(或者我不是简单地找不到关于这些问题的任何文档)我不完全确定某些操作是否与常见术语查询不兼容,或者如果我做错了.
我目前在Ubuntu 12.04,64位的Elasticsearch版本0.90.5.
这是我观察到的:
查询类型match和match_phrase似乎与使用high_freq_operator,low_freq_operator和minimum_should_match选项不兼容.(例如[match] query does not support [high_freq_operator]和类似的)
并且,或者,而不是(复合表达式)在它们的组件表达式指定使用公共术语时似乎产生了破坏的底层表达式.(例如[_na] filter malformed, must start with start_object)
span_term查询似乎与常见术语查询不兼容.(例如[span_term] query does not support [common])
我的查询看起来如下:
这个解析例如......
{   "query": {                                                                                                                                                                                                                              
        "match_phrase": {                                                                                                                                                                                                                   
            "subject": {                                                                                                                                                                                                                    
                "common": {                                                                                                                                                                                                                 
                    "body": {                                                                                                                                                                                                               
                        "cutoff_frequency": 0.001,                                                                                                                                                                                          
                        "query": "something not important"                                                                                                                                                                                  
                    }                                                                                                                                                                                                                       
                }                                                                                                                                                                                                                           
            }                                                                                                                                                                                                                               
        }                                                                                                                                                                                                                                   
    }                                                                                                                                                                                                                                       
} 
这个没有解析,引用"[match]查询不支持[high_freq_operator]":
{"query": {                                                                                                                                                                                                                              
        "match_phrase": {                                                                                                                                                                                                                   
            "subject": {                                                                                                                                                                                                                    
                "common": {                                                                                                                                                                                                                 
                    "body": {                                                                                                                                                                                                               
                        "cutoff_frequency": 0.001,
                        "high_freq_operator": "or",                                                                                                                                                                                          
                        "query": "something not important"                                                                                                                                                                                  
                    }                                                                                                                                                                                                                       
                }                                                                                                                                                                                                                           
            }                                                                                                                                                                                                                               
        }                                                                                                                                                                                                                                   
    }                                                                                                                                                                                                                                       
} 
这个无法解析,引用"过滤格式错误,必须以start_object开头":
{                                                                                                                                                                                                                                           
    "filter": {                                                                                                                                                                                                                             
        "or": [                                                                                                                                                                                                                             
            {                                                                                                                                                                                                                               
                "query": {                                                                                                                                                                                                                  
                    "match": {                                                                                                                                                                                                              
                        "subject": {                                                                                                                                                                                                  
                            "common": {                                                                                                                                                                                                     
                                "body": {                                                                                                                                                                                                   
                                    "cutoff_frequency": 0.001,                                                                                                                                                                              
                                    "query": "PLEASE READ: something not important"                                                                                                                                                         
                                }                                                                                                                                                                                                           
                            }                                                                                                                                                                                                               
                        }                                                                                                                                                                                                                   
                    }                                                                                                                                                                                                                       
                }                                                                                                                                                                                                                           
            },                                                                                                                                                                                                                              
            {                                                                                                                                                                                                                               
                "query": {                                                                                                                                                                                                                  
                    "range": {                                                                                                                                                                                                              
                        "date": {                                                                                                                                                                                                           
                            "to": "2009-12-31T23:59:59Z"                                                                                                                                                                                    
                        }                                                                                                                                                                                                                   
                    }                                                                                                                                                                                                                       
                }                                                                                                                                                                                                                           
            }                                                                                                                                                                                                                               
        ]                                                                                                                                                                                                                                   
    }                                                                                                                                                                                                                                       
} 
您误解了查询的结构.查询可以是"叶子"查询(直接处理单个字段或字段),也可以是包含其他查询的"复合"查询,例如bool和dis_max查询.
一common组术语查询是在自己的权利叶查询,就像match,match_phrase,term和range查询.您无法在common另一个叶子查询中嵌入查询INSIDE.
的match查询(不是match_phrase也不是match_phrase_prefix)已被部分地集成与common组术语查询在它支持的cutoff_frequency参数.这是一个简单的集成:如果您指定了cutoff_frequency那么match查询将在内部重写为common查询.如果你想要common-terms 的全部功能,那么你需要直接使用它.
所以这个match查询:
{
   "query": {
      "match": {
         "subject": {
            "query": "some words to query",
            "cutoff_frequency": 0.001
         }
      }
   }
}
是这个common查询的等价物:
{
   "query": {
      "common": {
         "subject": {
            "query": "some words to query",
            "cutoff_frequency": 0.001
         }
      }
   }
}
不同的是,在common查询中,还有许多其他旋钮,你可以旋转,例如high_freq_operator等
| 归档时间: | 
 | 
| 查看次数: | 2718 次 | 
| 最近记录: |