# Using fuzziness in span queries

**URL:** <https://discuss.elastic.co/t/using-fuzziness-in-span-queries/217357>\
**Category:** Elasticsearch\
**Tags:** language-clients\
**Created:** [January 31, 2020, 11:08am UTC](https://discuss.elastic.co/t/using-fuzziness-in-span-queries/217357 "2020-01-31T11:08:06Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![svr](https://avatars.discourse-cdn.com/v4/letter/s/6a8cbe/32.png) [@svr](https://discuss.elastic.co/u/svr)\
**Post date:** [January 31, 2020, 11:08am UTC](https://discuss.elastic.co/t/using-fuzziness-in-span-queries/217357/1 "2020-01-31T11:08:06Z")

</div>

I try to implement a search for a phrase by using a span query as I found at stackoverflow:

> <https://stackoverflow.com/questions/53652765/elastic-search-match-phrase-fuzziness>

But I have to write it as a request for NEST in [VB.NET](http://VB.NET):

```
Dim sSpanClauses As New List(Of ISpanQuery)
For Each w In word.Split(" ")
    sSpanClauses.Add(New SpanMultiTermQuery() With {
        .Match = New MatchQuery() With {
            .Field = p.searchField,
            .Query = w,
            .Fuzziness = Fuzziness.EditDistance(p.fuzziness),
            .PrefixLength = 1
    }})
Next

Dim sPhrase As New BoolQuery() With {
    .Should = New SpanNearQuery() With {
        .Clauses = sSpanClauses,
        .Slop = 2,
        .InOrder = True
    }
}

```

The problem is that SpanNearQuery.Clauses expect an Enumarable Of(ISpanQuery) but I have to use SpanMultiTermQuery to implement fuzziness. SpanMultiTermQuery can not be added to a List(of ISpanQuery).

Where is my fault?

Regards  
Stefan

---

<div class="post-metadata">

**Author:** ![svr](https://avatars.discourse-cdn.com/v4/letter/s/6a8cbe/32.png) [@svr](https://discuss.elastic.co/u/svr)\
**Post date:** [January 31, 2020, 2:27pm UTC](https://discuss.elastic.co/t/using-fuzziness-in-span-queries/217357/2 "2020-01-31T14:27:33Z")

</div>

Ok... maybe on the right way.

```
Dim sSpanClauses As New List(Of ISpanQuery)
Dim sSpanNearClause As New List(Of QueryContainer)

For Each w In word.Split(" ")
    sSpanClauses.Add(New SpanQuery() With {
        .SpanMultiTerm = New SpanMultiTermQuery() With {
        .Match = New MatchQuery() With {
            .Field = p.searchField,
            .Query = w,
            .Fuzziness = Fuzziness.EditDistance(p.fuzziness),
            .PrefixLength = 1
    }}})
Next

sSpanNearClause.Add(New SpanNearQuery() With {
        .Clauses = sSpanClauses,
        .Slop = 2,
        .InOrder = True
    })

Dim sPhraseQuery As New BoolQuery() With {
    .Must = sSpanNearClause
}

innerQuerieClauses.Add(sPhraseQuery)

```

But this generates an empty search request at the end.

---

<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 28, 2020, 2:27pm UTC](https://discuss.elastic.co/t/using-fuzziness-in-span-queries/217357/3 "2020-02-28T14:27:37Z")

</div>

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