Elasticsearch发布的荧光笔无法使用某些搜索字符串

时间:2015-01-13 15:02:56

标签: elasticsearch

我的搜索功能可与大多数搜索字符串配合使用,但在其他搜索字符串上却无法实现。试验时,如果查询中至少有一个单词不匹配(比如这个组成的搜索短语),它似乎会失败,并显示错误:

{
   "error": "SearchPhaseExecutionException[Failed to execute phase [query_fetch], all shards failed; shardFailures {[w3zfoix_Qi-xwpVGbCbQWw][ia_test][0]: ElasticsearchIllegalArgumentException[the field [content] should be indexed with positions and offsets in the postings list to be used with postings highlighter]}]",
   "status": 400
}

给出此错误的最简单搜索如下:

POST /myindex/_search
{
    "from" : 0,
    "size" : 25,
    "query": {
        "filtered" : {
            "query" : {
                "multi_match" : {
                    "type" : "most_fields",
                    "fields": ["title", "content", "content.english"],
                    "query": "Box Fexye"
                }
            }
        }
    },
    "highlight" : {
        "fields" : {
            "content" : {
                "type" : "postings"
            }
        }
    }
}

我的查询比这更复杂,我需要使用"帖子"荧光笔从文档中提取最佳匹配句子。

相关字段的索引如下:

        "properties" : {
            "title" : {
                "type" : "string",
                "fields": {
                    "shingles": {
                        "type":     "string",
                        "analyzer": "my_shingle_analyzer"
                    }
                }
            },
            "content" : {
                "type" : "string",
                "analyzer" : "standard",
                "fields": {
                    "english": {
                        "type":     "string",
                        "analyzer": "my_english"
                    },
                    "shingles": {
                        "type":     "string",
                        "analyzer": "my_shingle_analyzer"
                    }
                },
                "index_options" : "offsets",
                "term_vector" : "with_positions_offsets"
            }
        }

0 个答案:

没有答案