在elasticsearch

时间:2015-07-22 11:28:23

标签: search indexing elasticsearch

如果我搜索当前查询和使用的分析器这个术语“Liebe”,则返回包含单词“Liebe”的结果作为不同单词的一部分“Verlieben”优先于那些只有这个单词的人。< / p>

应该是另一种方式。 我也在使用一些高级过滤器和聚合。但这是我用来搜索的最基本的查询。

{
  "query": {
    "query_string": {
        "query": "Liebe",
        "default_operator": "AND",
        "analyzer": "my_analyzer1"
    }
  },
  "size": "10",
  "from": 0
}

分析仪和索引设置如下:

{
       "settings": {
          "analysis": {
             "filter": {
                "nGram_filter": {
                   "type": "nGram",
                   "min_gram": 2,
                   "max_gram": 20,
                   "token_chars": [
                      "letter",
                      "digit",
                      "punctuation",
                      "symbol"
                   ]
                }
             },
             "analyzer": {
                "nGram_analyzer": {
                   "type": "custom",
                   "tokenizer": "whitespace",
                   "filter": [
                      "lowercase",
                      "asciifolding",
                      "nGram_filter"
                   ]
                },
                "whitespace_analyzer": {
                   "type": "custom",
                   "tokenizer": "whitespace",
                   "filter": [
                      "lowercase",
                      "asciifolding"
                   ]
                },
                "my_analyzer1":{
                        "type": "custom",
                        "tokenizer": "whitespace",
                        "filter": [
                          "lowercase",
                          "my_stop'.$s_id.'",
                          "asciifolding"
                        ]
                    }
             }
          }
       },
       "mappings": {
          "product": {
             "_all": {
                "index_analyzer": "nGram_analyzer",
                "search_analyzer": "whitespace_analyzer"
             },
             "properties": {
                '.$mapping.'
             }
          }
       }
    }

请忽略$ mapping。这些是基于我的框架中的一些设置驻留在索引中的动态字段。

任何人都可以请指点我不需要改变的方向,可以得到我上面提到的内容吗?

我检查过很多匹配查询的内容。但是,我没有修复任何字段。所以,我不能用它。我想要精确搜索和部分匹配的搜索结果(使用nGrams)。

请帮忙!

谢谢!

0 个答案:

没有答案