Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

루센 쿼리 구조 요약

검색 명령의 설명 응답 에는 해당 명령으로 실행된 쿼리에 대한 정보가 포함되어 있습니다. 응답에는 $search 쿼리를 충족하기 위해 Atlas Search가 실행한 루센 쿼리에 대한 구조화된 세부 정보가 포함되어 있습니다.

이 페이지에는 다음이 포함되어 있습니다.

  • Atlas Search 연산자가 생성하는 일부 루센 쿼리

  • 구조화된 요약에 포함된 루센 쿼리 옵션

  • 각 루센 쿼리 유형에 대한 루센 쿼리 구조화된 요약 예시

참고

예시 정보

이 섹션의 예제는 queryPlanner 상세도 모드샘플 데이터 세트에 대해 실행된 쿼리를 기반으로 합니다. 예시 응답에서는 다음과 같습니다.

  • mongotQuery 필드에는 Atlas Search 연산자와 실행된 쿼리가 표시됩니다.

  • explain.type 필드에는 연산자가 만든 루센 쿼리가 표시됩니다.

전체 예를 보려면 예시를 참조하세요.

BooleanQuery

루센 BooleanQuery의 경우 구조화된 요약에 다음 옵션에 대한 세부 정보가 포함되어 있습니다.

필드
유형
필요성
설명
must
옵션
일치해야 하는 절입니다.
mustNot
옵션
일치해서는 안 되는 절.
should
옵션
일치해야 하는 절입니다.
filter
옵션
모두 일치해야 하는 절.
minimumShouldMatch
Integer
옵션
일치해야 하는 should 절의 최소 수.

다음 예제에서는 sample_airbnb.listingsAndReviews 컬렉션에 대해 실행된 쿼리에 대한 explain 응답을 보여줍니다.

1{
2 "stages" : [
3 {
4 "$_internalSearchMongotRemote" : {
5 "mongotQuery" : {
6 "compound" : {
7 "must" : [ {
8 "compound" : {
9 "should" : [ {
10 "text" : {
11 "query" : "historic",
12 "path" : "summary"
13 }
14 },
15 {
16 "text" : {
17 "query" : "Portugal",
18 "path" : "address.country"
19 }
20 },
21 {
22 "text" : {
23 "query" : "railway",
24 "path" : "transit"
25 }
26 } ]
27 }
28 } ],
29 "mustNot" : [ {
30 "text" : {
31 "query" : "Apartment",
32 "path" : "property_type"
33 }
34 } ]
35 }
36 },
37 "explain" : {
38 "type" : "BooleanQuery",
39 "args" : {
40 "must" : [ {
41 "path" : "compound.must",
42 "type" : "BooleanQuery",
43 "args" : {
44 "must" : [ ],
45 "mustNot" : [ ],
46 "should" : [
47 {
48 "path" : "compound.must.compound.should[0]",
49 "type" : "TermQuery",
50 "args" : {
51 "path" : "summary",
52 "value" : "historic"
53 }
54 },
55 {
56 "path" : "compound.must.compound.should[1]",
57 "type" : "TermQuery",
58 "args" : {
59 "path" : "address.country",
60 "value" : "portugal"
61 }
62 },
63 {
64 "path" : "compound.must.compound.should[2]",
65 "type" : "TermQuery",
66 "args" : {
67 "path" : "transit",
68 "value" : "railway"
69 }
70 }
71 ],
72 "filter" : [ ],
73 "minimumShouldMatch" : 0
74 }
75 } ],
76 "mustNot" : [ {
77 "path" : "compound.mustNot",
78 "type" : "TermQuery",
79 "args" : {
80 "path" : "property_type",
81 "value" : "apartment"
82 }
83 } ],
84 "should" : [ ],
85 "filter" : [ ],
86 "minimumShouldMatch" : 0
87 }
88 }
89 },
90 ...
91 },
92 ...
93 ],
94 ...
95}
ConstantScoreQuery

상수 점수 쿼리의 경우 구조화된 요약에는 다음 옵션에 대한 세 부정보가 포함됩니다.

필드
유형
필요성
설명
query
필수 사항
ConstantScoreQuery의 자식.

다음 예제에서는 sample_airbnb.listingsAndReviews 컬렉션에 대해 실행된 쿼리에 대한 explain 응답을 보여줍니다.

1{
2 "stages" : [
3 {
4 "$_internalSearchMongotRemote" : {
5 "mongotQuery" : {
6 "equals" : {
7 "path" : "host.host_identity_verified",
8 "value" : true
9 }
10 },
11 "explain" : {
12 "type" : "ConstantScoreQuery",
13 "args" : {
14 "query" : {
15 "type" : "TermQuery",
16 "args" : {
17 "path" : "host.host_identity_verified",
18 "value" : "T"
19 }
20 }
21 }
22 }
23 }
24 },
25 {
26 "$_internalSearchIdLookup" : { }
27 }
28 ],
29 ...
30}
FunctionScoreQuery

루센 FunctionScoreQuery 쿼리의 경우 구조화된 요약에 다음 옵션에 대한 세부 정보가 포함되어 있습니다.

필드
유형
필요성
설명
scoreFunction
문자열
필수 사항
쿼리에 사용된 점수 표현식입니다.
query
필수 사항
쿼리.

다음 예제에서는 sample_airbnb.listingsAndReviews 컬렉션에 대해 실행된 쿼리에 대한 explain 응답을 보여줍니다.

1{
2 "stages" : [
3 {
4 "$_internalSearchMongotRemote" : {
5 "mongotQuery" : {
6 "near" : {
7 "path" : "accomodates",
8 "origin" : 8,
9 "pivot" : 2
10 }
11 },
12 "explain" : {
13 "type" : "BooleanQuery",
14 "args" : {
15 "must" : [ ],
16 "mustNot" : [ ],
17 "should" : [
18 {
19 "type" : "BooleanQuery",
20 "args" : {
21 "must" : [ ],
22 "mustNot" : [ ],
23 "should" : [
24 {
25 "type" : "FunctionScoreQuery",
26 "args" : {
27 "scoreFunction" : "expr(pivot / (pivot + abs(origin - value)))",
28 "query" : {
29 "type" : "LongDistanceFeatureQuery",
30 "args" : { },
31 "stats" : { }
32 }
33 }
34 }
35 ],
36 "filter" : [
37 {
38 "type" : "PointRangeQuery",
39 "args" : {
40 "path" : "accomodates",
41 "representation" : "double",
42 "gte" : 8.000000000000002,
43 "lte" : NaN
44 }
45 }
46 ],
47 "minimumShouldMatch" : 0
48 }
49 },
50 {
51 "type" : "LongDistanceFeatureQuery",
52 "args" : { },
53 "stats" : { }
54 }
55 ],
56 "filter" : [ ],
57 "minimumShouldMatch" : 0
58 }
59 }
60 },
61 ...
62 },
63 ...
64 ],
65 ...
66}
LatLonPointDistanceQuery

루센 LatLonPointDistanceQuery 쿼리의 경우 응답에는 타이밍 분석 설명만 포함됩니다.

다음 예제에서는 sample_airbnb.listingsAndReviews 컬렉션에 대해 실행된 쿼리에 대한 explain 응답을 보여줍니다.

1{
2 "stages" : [
3 {
4 "$_internalSearchMongotRemote" : {
5 "mongotQuery" : {
6 "geoWithin" : {
7 "path" : "address.location",
8 "circle" : {
9 "radius" : 4800,
10 "center" : {
11 "type" : "Point",
12 "coordinates" : [
13 -122.419472,
14 37.765302
15 ]
16 }
17 }
18 }
19 },
20 "explain" : {
21 "type" : "LatLonPointDistanceQuery",
22 "args" : { }
23 }
24 }
25 },
26 ...
27 ],
28 ...
29}
LatLonShapeQuery

루센 LatLonShapeQuery 쿼리의 경우 응답에는 타이밍 분석 설명만 포함됩니다.

다음 예제에서는 sample_airbnb.listingsAndReviews 컬렉션에 대해 실행된 쿼리에 대한 explain 응답을 보여줍니다.

1{
2 "stages" : [
3 {
4 "$_internalSearchMongotRemote" : {
5 "mongotQuery" : {
6 "geoShape" : {
7 "path" : "address.location",
8 "relation" : "within",
9 "geometry" : {
10 "type" : "Polygon",
11 "coordinates" : [
12 [
13 [ -74.3994140625, 40.5305017757 ],
14 [ -74.7290039063, 40.5805846641 ],
15 [ -74.7729492188, 40.9467136651 ],
16 [ -74.0698242188, 41.1290213475 ],
17 [ -73.65234375, 40.9964840144 ],
18 [ -72.6416015625, 40.9467136651 ],
19 [ -72.3559570313, 40.7971774152 ],
20 [ -74.3994140625, 40.5305017757 ]
21 ]
22 ]
23 }
24 }
25 },
26 "explain" : {
27 "type" : "LatLonShapeQuery",
28 "args" : { }
29 }
30 },
31 ...
32 },
33 ...
34 ],
35 ...
36}
LongDistanceFeatureQuery

루센 LongDistanceFeatureQuery의 경우 응답에는 타이밍 분석 설명만 포함됩니다.

다음 예제에서는 sample_mflix.movies 컬렉션에 대해 실행된 쿼리에 대한 explain 응답을 보여줍니다.

1{
2 "stages" : [
3 {
4 "$_internalSearchMongotRemote" : {
5 "mongotQuery" : {
6 "near" : {
7 "path" : "released",
8 "origin" : ISODate("1915-09-13T00:00:00Z"),
9 "pivot" : 7776000000
10 }
11 },
12 "explain" : {
13 "type" : "LongDistanceFeatureQuery",
14 "args" : { }
15 }
16 },
17 ...
18 },
19 ...
20 ],
21 ...
22}
MultiTermQueryConstantScoreWrapper

루센 MultiTermQueryConstantScoreWrapper 쿼리의 경우 구조화된 요약에는 다음 인수에 대한 세부 정보가 포함되어 있습니다.

필드
유형
필요성
설명
queries
필수 사항
쿼리 목록.

다음 예제에서는 sample_airbnb.listingsAndReviews 컬렉션에 대해 실행된 쿼리에 대한 explain 응답을 보여줍니다.

1{
2 "stages" : [
3 {
4 "$_internalSearchMongotRemote" : {
5 "mongotQuery" : {
6 "regex" : {
7 "path" : "access",
8 "query" : "full(.{0,5})",
9 "allowAnalyzedField" : true
10 }
11 },
12 "explain" : {
13 "type" : "MultiTermQueryConstantScoreWrapper",
14 "args" : {
15 "queries" : [
16 {
17 "type" : "DefaultQuery",
18 "args" : {
19 "queryType" : "RegexpQuery"
20 }
21 }
22 ]
23 }
24 }
25 },
26 ...
27 },
28 ...
29 ],
30 ...
31}
PhraseQuery

루센 PhraseQuery 쿼리의 경우 구조화된 요약에는 다음 인수에 대한 세부 정보가 포함되어 있습니다.

필드
유형
필요성
설명
path
문자열
필수 사항
검색할 인덱싱된 필드입니다.
query
문자열
필수 사항
검색할 문자열 또는 문자열을 입력합니다.
slop
int
필수 사항
query 구문에서 단어 간 허용 거리입니다.

다음 예제에서는 sample_airbnb.listingsAndReviews 컬렉션에 대해 실행된 쿼리에 대한 explain 응답을 보여줍니다.

1{
2 "stages" : [
3 {
4 "$_internalSearchMongotRemote" : {
5 "mongotQuery" : {
6 "phrase" : {
7 "path" : "description",
8 "query" : "comfortable apartment",
9 "slop" : 2
10 }
11 },
12 "explain" : {
13 "type" : "PhraseQuery",
14 "args" : {
15 "path" : "description",
16 "query" : "[comfortable, apartment]",
17 "slop" : 2
18 }
19 }
20 },
21 ...
22 },
23 ...
24 ],
25 ...
26}
PointRangeQuery

루센 PointRangeQuery 쿼리의 경우 구조화된 요약에는 다음 인수에 대한 세부 정보가 포함되어 있습니다.

필드
유형
필요성
설명
path
문자열
필수 사항
검색할 인덱싱된 필드입니다.
representation
문자열
옵션
숫자 표현. 날짜로 입력된 데이터에 대한 쿼리에는 숫자 표현이 포함되지 않음.
gte
숫자
옵션
쿼리의 하한값.
lte
숫자
옵션
쿼리의 상한.

다음 예제에서는 sample_airbnb.listingsAndReviews 컬렉션에 대해 실행된 쿼리에 대한 explain 응답을 보여줍니다.

1{
2 "stages" : [
3 {
4 "$_internalSearchMongotRemote" : {
5 "mongotQuery" : {
6 "range" : {
7 "path" : "number_of_reviews",
8 "gt" : 5
9 }
10 },
11 "explain" : {
12 "type" : "BooleanQuery",
13 "args" : {
14 "must" : [ ],
15 "mustNot" : [ ],
16 "should" : [
17 {
18 "type" : "PointRangeQuery",
19 "args" : {
20 "path" : "number_of_reviews",
21 "representation" : "double",
22 "gte" : 5.000000000000001
23 }
24 },
25 {
26 "type" : "PointRangeQuery",
27 "args" : {
28 "path" : "number_of_reviews",
29 "representation" : "int64",
30 "gte" : NumberLong(6)
31 }
32 }
33 ],
34 "filter" : [ ],
35 "minimumShouldMatch" : 0
36 }
37 }
38 },
39 ...
40 },
41 ...
42 ],
43 ...
44}
TermQuery

용어 쿼리의 경우 구조화된 요약에는 다음 인수에 대한 세부 정보가 포함되어 있습니다.

필드
유형
필요성
설명
path
문자열
필수 사항
검색할 인덱싱된 필드입니다.
value
문자열
필수 사항
검색할 문자열입니다.

다음 예제에서는 sample_airbnb.listingsAndReviews 컬렉션에 대해 실행된 쿼리에 대한 explain 응답을 보여줍니다.

1{
2 "stages" : [
3 {
4 "$_internalSearchMongotRemote" : {
5 "mongotQuery" : {
6 "queryString" : {
7 "defaultPath" : "summary",
8 "query" : "quiet"
9 }
10 },
11 "explain" : {
12 "type" : "TermQuery",
13 "args" : {
14 "path" : "summary",
15 "value" : "quiet"
16 }
17 }
18 },
19 ...
20 },
21 ...
22 ],
23 ...
24}
Default

다른 루센 쿼리에서 명시적으로 정의되지 않은 루센 쿼리는 기본 쿼리를 사용하여 직렬화됩니다. 구조화된 요약에는 다음 옵션에 대한 세부 정보가 포함되어 있습니다.

필드
유형
필요성
설명
queryType
문자열
필수 사항입니다.
루씬 쿼리 유형.

다음 예제에서는 sample_airbnb.listingsAndReviews 컬렉션에 대해 실행된 쿼리에 대한 explain 응답을 보여줍니다.

1{
2 "stages" : [
3 {
4 "$_internalSearchMongotRemote" : {
5 "mongotQuery" : {
6 "near" : {
7 "origin" : {
8 "type" : "Point",
9 "coordinates" : [
10 -8.61308,
11 41.1413
12 ]
13 },
14 "pivot" : 1000,
15 "path" : "address.location"
16 }
17 },
18 "explain" : {
19 "type" : "DefaultQuery",
20 "args" : {
21 "queryType" : "LatLonPointDistanceFeatureQuery"
22 }
23 }
24 },
25 ...
26 },
27 ...
28 ],
29 ...
30}