# Get random record using must\_not

**URL:** https://discuss.elastic.co/t/get-random-record-using-must-not/323786
**Category:** Elasticsearch
**Created:** [January 24, 2023, 6:53am UTC](https://discuss.elastic.co/t/get-random-record-using-must-not/323786 "2023-01-24T06:53:27Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![sphawk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sphawk/32/76990_2.png) [@sphawk](https://discuss.elastic.co/u/sphawk)
#### Post date: [January 24, 2023, 6:53am UTC](https://discuss.elastic.co/t/get-random-record-using-must-not/323786/1 "2023-01-24T06:53:27Z")

</div>

hello again  
I need to get a random record excluding some values using must\_not directive.  
this is the query i've created using some online post.

```auto
{
    "index": "articles",
    "body":
    {
        "size": 1,
        "query":
        {
            "function_score":
            {
                "query":
                {
                    "must_not": [
                    {
                        "term":
                        {
                            "language.keyword": "en_US"
                        }
                    },
                    {
                        "term":
                        {
                            "language.keyword": "es_ES"
                        }
                    }]
                },
                "functions": [
                {
                    "random_score": {}
                }]
            }
        }
    }
}

```

but doesn't work.

```auto
"reason": "[must_not] query malformed, no start_object after query name",

```

without the

```auto
            'query' => ['must_not' => ...],

```

work perfectly.  
any idea?

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [January 24, 2023, 11:11am UTC](https://discuss.elastic.co/t/get-random-record-using-must-not/323786/2 "2023-01-24T11:11:57Z")

</div>

What do you mean by "it does not work"?

---

<div class="post-metadata">

### Author: ![sphawk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sphawk/32/76990_2.png) [@sphawk](https://discuss.elastic.co/u/sphawk)
#### Post date: [January 24, 2023, 11:15am UTC](https://discuss.elastic.co/t/get-random-record-using-must-not/323786/3 "2023-01-24T11:15:35Z")

</div>

sorry  
I forgotten to add the reason code

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [January 24, 2023, 11:36am UTC](https://discuss.elastic.co/t/get-random-record-using-must-not/323786/4 "2023-01-24T11:36:51Z")

</div>

You need to use a bool query.

---

<div class="post-metadata">

### Author: ![sphawk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sphawk/32/76990_2.png) [@sphawk](https://discuss.elastic.co/u/sphawk)
#### Post date: [January 24, 2023, 12:20pm UTC](https://discuss.elastic.co/t/get-random-record-using-must-not/323786/5 "2023-01-24T12:20:36Z")

</div>

i'm an idiot 🤐

```auto
'query' => ['bool' => [ 'must_not' => $must_not] ],

```

tnx @dadoonet

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [February 21, 2023, 12:20pm UTC](https://discuss.elastic.co/t/get-random-record-using-must-not/323786/6 "2023-02-21T12:20:44Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
