スパンクエリではない

他のスパンクエリと重なるマッチや、他のSpanQueryの前にxトークン(パラメータpreで制御)または後にyトークン(パラメータpostで制御)にあるマッチを削除します。以下はその例です:

Python

  1. resp = client.search(
  2. query={
  3. "span_not": {
  4. "include": {
  5. "span_term": {
  6. "field1": "hoya"
  7. }
  8. },
  9. "exclude": {
  10. "span_near": {
  11. "clauses": [
  12. {
  13. "span_term": {
  14. "field1": "la"
  15. }
  16. },
  17. {
  18. "span_term": {
  19. "field1": "hoya"
  20. }
  21. }
  22. ],
  23. "slop": 0,
  24. "in_order": True
  25. }
  26. }
  27. }
  28. },
  29. )
  30. print(resp)

Ruby

  1. response = client.search(
  2. body: {
  3. query: {
  4. span_not: {
  5. include: {
  6. span_term: {
  7. "field1": 'hoya'
  8. }
  9. },
  10. exclude: {
  11. span_near: {
  12. clauses: [
  13. {
  14. span_term: {
  15. "field1": 'la'
  16. }
  17. },
  18. {
  19. span_term: {
  20. "field1": 'hoya'
  21. }
  22. }
  23. ],
  24. slop: 0,
  25. in_order: true
  26. }
  27. }
  28. }
  29. }
  30. }
  31. )
  32. puts response

Js

  1. const response = await client.search({
  2. query: {
  3. span_not: {
  4. include: {
  5. span_term: {
  6. field1: "hoya",
  7. },
  8. },
  9. exclude: {
  10. span_near: {
  11. clauses: [
  12. {
  13. span_term: {
  14. field1: "la",
  15. },
  16. },
  17. {
  18. span_term: {
  19. field1: "hoya",
  20. },
  21. },
  22. ],
  23. slop: 0,
  24. in_order: true,
  25. },
  26. },
  27. },
  28. },
  29. });
  30. console.log(response);

コンソール

  1. GET /_search
  2. {
  3. "query": {
  4. "span_not": {
  5. "include": {
  6. "span_term": { "field1": "hoya" }
  7. },
  8. "exclude": {
  9. "span_near": {
  10. "clauses": [
  11. { "span_term": { "field1": "la" } },
  12. { "span_term": { "field1": "hoya" } }
  13. ],
  14. "slop": 0,
  15. "in_order": true
  16. }
  17. }
  18. }
  19. }
  20. }

includeおよびexcludeのクローズは、任意のスパンタイプのクエリである可能性があります。includeクローズはフィルタリングされるマッチを持つスパンクエリであり、excludeクローズは返されたマッチと重ならない必要があるスパンクエリです。

上記の例では、laが前にあるものを除いて、hoyaという用語を持つすべてのドキュメントがフィルタリングされます。

他のトップレベルオプション:

pre 設定されている場合、含まれるスパンの前のトークンの量は除外スパンと重複できません。デフォルトは0です。
post 設定されている場合、含まれるスパンの後のトークンの量は除外スパンと重複できません。デフォルトは0です。
dist 設定されている場合、含まれるスパン内のトークンの量は除外スパンと重複できません。prepostの両方を設定することと同等です。