Невозможно получить аналогичные результаты при применении фильтра к определенному полю - PullRequest
0 голосов
/ 09 ноября 2018

Я работаю над Elastic Search 6.4.2. Я загружаю свой индекс и отображение, и мои доступные для поиска поля - это заголовок, контент, и я хочу отфильтровать результаты по полю "test" . Значения в полях теста: abce, ghij, klmn . Я хочу отфильтровать результаты с полем "test" и значением "ghij" .

PUT /test_index
{
    "settings": {
        "index": {
            "number_of_shards": 4,
            "number_of_replicas": 1,
            "refresh_interval": "60s",
            "analysis" : {
              "analyzer" : {
                "my_analyzer" : {
                    "tokenizer" : "standard",
                    "filter" : ["standard", "lowercase", "my_snow"]
               },
               "blogs_analyzer": {
                 "type":       "stop",
                 "stopwords":  "_english_"
               }
              } ,


              "filter" : {
                "my_snow" : {
                    "type" : "snowball",
                    "language" : "Lovins"
                }
            }
        }
        }
    },
    "mappings": {
        "doc": {
            "_source": {
                "enabled": true
            },
            "properties": {
                "content": {
                    "type": "text",
                    "index": "true",
                    "store": true,
                           "analyzer":"my_analyzer",
                            "search_analyzer": "my_analyzer"
                },
                "host": {
                    "type": "keyword",
                    "index": "true",
                    "store": true

                },
                "title": {
                    "type": "text",
                    "index": "true",
                    "store": true,
                            "analyzer":"my_analyzer",
                            "search_analyzer": "my_analyzer"

                },
                "url": {
                    "type": "text",
                    "index": "true",
                    "store": true

       },
                "test": {
                    "type": "keyword",
                    "index": "true",
                    "store": true
        }

            }
        }
    }
}

Я попытался использовать приведенное ниже тело, чтобы получить результаты.

POST test_index/_search
{
    "query": {
        "bool": {
            "should": [{
                    "match": {
                        "content": {
                            "query": "sports"

                        }
                    }
                },
                {
                    "match": {
                        "title": {
                            "query": "sports"

                        }
                    }
                }
            ],
            "filter": {
                "bool": {
                    "must": [{
                        "term": {
                            "test": "ghij"
                        }
                    }]
                }
            }
        }
    }
}

Если я отправляю вышеупомянутый запрос, я получаю меньше записей и использую прямой запрос на отправку GET /test_index/_search?q=sports Я получаю больше результатов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...