@@ -440,26 +440,63 @@ def setUpTestData(cls):
440440
441441 @unittest .skipIf (
442442 connection .vendor != "sqlite" ,
443- "sqlite doesn't support scoring so natural order will be in the order of defintion" ,
443+ "sqlite doesn't support annotating scores, so search results order will be in the order of defintion" ,
444444 )
445- def test_natural_order_sqlite (self ):
445+ def test_searchQuery_order_by_relevance_sqlite (self ):
446446 query = """
447447 query($searchQuery: String, $order: String) {
448448 pages(searchQuery: $searchQuery, order: $order) {
449449 title
450+ searchScore
450451 }
451452 }
452453 """
454+
453455 executed = self .client .execute (query , variables = {"searchQuery" : "Alpha" })
454456 page_data = executed ["data" ].get ("pages" )
455-
456457 self .assertEquals (len (page_data ), 6 )
457458 self .assertEquals (page_data [0 ]["title" ], "Alpha" )
459+ self .assertEquals (page_data [0 ]["searchScore" ], None )
458460 self .assertEquals (page_data [1 ]["title" ], "Alpha Alpha" )
461+ self .assertEquals (page_data [1 ]["searchScore" ], None )
459462 self .assertEquals (page_data [2 ]["title" ], "Alpha Beta" )
463+ self .assertEquals (page_data [2 ]["searchScore" ], None )
460464 self .assertEquals (page_data [3 ]["title" ], "Alpha Gamma" )
465+ self .assertEquals (page_data [3 ]["searchScore" ], None )
461466 self .assertEquals (page_data [4 ]["title" ], "Beta Alpha" )
467+ self .assertEquals (page_data [4 ]["searchScore" ], None )
462468 self .assertEquals (page_data [5 ]["title" ], "Gamma Alpha" )
469+ self .assertEquals (page_data [5 ]["searchScore" ], None )
470+
471+ @unittest .skipIf (
472+ connection .vendor == "sqlite" ,
473+ "non-sqlite database backends should support annotating search score, so results should be orderd by score by default" ,
474+ )
475+ def test_searchQuery_order_by_relevance (self ):
476+ query = """
477+ query($searchQuery: String, $order: String) {
478+ pages(searchQuery: $searchQuery, order: $order) {
479+ title
480+ searchScore
481+ }
482+ }
483+ """
484+
485+ executed = self .client .execute (query , variables = {"searchQuery" : "Alpha" })
486+ page_data = executed ["data" ].get ("pages" )
487+ self .assertEquals (len (page_data ), 6 )
488+ self .assertEquals (page_data [0 ]["title" ], "Alpha Alpha" )
489+ self .assertEquals (page_data [0 ]["searchScore" ], 0.23700128495693207 )
490+ self .assertEquals (page_data [1 ]["title" ], "Alpha" )
491+ self .assertEquals (page_data [1 ]["searchScore" ], 0.18960101902484894 )
492+ self .assertEquals (page_data [2 ]["title" ], "Gamma Alpha" )
493+ self .assertEquals (page_data [2 ]["searchScore" ], 0.11060059443116188 )
494+ self .assertEquals (page_data [3 ]["title" ], "Beta Alpha" )
495+ self .assertEquals (page_data [3 ]["searchScore" ], 0.11060059443116188 )
496+ self .assertEquals (page_data [4 ]["title" ], "Alpha Gamma" )
497+ self .assertEquals (page_data [4 ]["searchScore" ], 0.11060059443116188 )
498+ self .assertEquals (page_data [5 ]["title" ], "Alpha Beta" )
499+ self .assertEquals (page_data [5 ]["searchScore" ], 0.10533389945824942 )
463500
464501 def test_explicit_order (self ):
465502 query = """
@@ -476,9 +513,9 @@ def test_explicit_order(self):
476513
477514 self .assertEquals (len (page_data ), 6 )
478515 self .assertEquals (page_data [0 ]["title" ], "Gamma Gamma" )
479- self .assertEquals (page_data [3 ]["title" ], "Gamma" )
480516 self .assertEquals (page_data [1 ]["title" ], "Gamma Beta" )
481517 self .assertEquals (page_data [2 ]["title" ], "Gamma Alpha" )
518+ self .assertEquals (page_data [3 ]["title" ], "Gamma" )
482519 self .assertEquals (page_data [4 ]["title" ], "Beta Gamma" )
483520 self .assertEquals (page_data [5 ]["title" ], "Alpha Gamma" )
484521
0 commit comments