我目前正在調查常用術語查詢的使用,並且由於文檔有點缺乏(無論是或者我不是簡單地在這些問題上找不到任何文檔),我我不完全確定某些操作是否與常見術語查詢不兼容,或者如果我做錯了。Elasticsearch的常見術語查詢,使用和與查詢類型的兼容
我目前在Ubuntu 12.04,64位的Elasticsearch版本0.90.5上。
這裏就是我觀察:
類型匹配和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"
}
}
}
}
}
}
這一個無法解析,理由是「[匹配]查詢不支持[high_freq_operator]「:
{"query": {
"match_phrase": {
"subject": {
"common": {
"body": {
"cutoff_frequency": 0.001,
"high_freq_operator": "or",
"query": "something not important"
}
}
}
}
}
}
這一個不能解析,引用」過濾器格式錯誤,必須啓動機智h 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"
}
}
}
}
]
}
}
謝謝。就像任何人閱讀這個回覆一樣,我發現match_phrase支持cutoff_frequency。 – rplevy
match_phrase可能不會拒絕參數,但它沒有考慮到它:https://github.com/elasticsearch/elasticsearch/blob/master/src/main/java/org/elasticsearch/index/search/MatchQuery的.java#L208 – DrTech