|
|
@@ -386,3 +386,41 @@ func TestCountDocsOnly(t *testing.T) {
|
|
|
utils.Expect(t, "2", len(outputs.Tokens))
|
|
|
utils.Expect(t, "2", outputs.NumDocs)
|
|
|
}
|
|
|
+
|
|
|
+func TestSearchWithin(t *testing.T) {
|
|
|
+ var engine Engine
|
|
|
+ engine.Init(types.EngineInitOptions{
|
|
|
+ SegmenterDictionaries: "../testdata/test_dict.txt",
|
|
|
+ DefaultRankOptions: &types.RankOptions{
|
|
|
+ ReverseOrder: true,
|
|
|
+ OutputOffset: 0,
|
|
|
+ MaxOutputs: 10,
|
|
|
+ ScoringCriteria: &RankByTokenProximity{},
|
|
|
+ },
|
|
|
+ IndexerInitOptions: &types.IndexerInitOptions{
|
|
|
+ IndexType: types.LocationsIndex,
|
|
|
+ },
|
|
|
+ })
|
|
|
+
|
|
|
+ AddDocs(&engine)
|
|
|
+
|
|
|
+ docIds := make(map[uint64]bool)
|
|
|
+ docIds[4] = true
|
|
|
+ docIds[0] = true
|
|
|
+ outputs := engine.Search(types.SearchRequest{
|
|
|
+ Text: "中国人口",
|
|
|
+ DocIds: docIds,
|
|
|
+ })
|
|
|
+ utils.Expect(t, "2", len(outputs.Tokens))
|
|
|
+ utils.Expect(t, "中国", outputs.Tokens[0])
|
|
|
+ utils.Expect(t, "人口", outputs.Tokens[1])
|
|
|
+ utils.Expect(t, "2", len(outputs.Docs))
|
|
|
+
|
|
|
+ utils.Expect(t, "0", outputs.Docs[0].DocId)
|
|
|
+ utils.Expect(t, "76", int(outputs.Docs[0].Scores[0]*1000))
|
|
|
+ utils.Expect(t, "[0 18]", outputs.Docs[0].TokenSnippetLocations)
|
|
|
+
|
|
|
+ utils.Expect(t, "4", outputs.Docs[1].DocId)
|
|
|
+ utils.Expect(t, "100", int(outputs.Docs[1].Scores[0]*1000))
|
|
|
+ utils.Expect(t, "[0 15]", outputs.Docs[1].TokenSnippetLocations)
|
|
|
+}
|