@@ -389,3 +389,57 @@ export class TermEditDistanceIndex
389389 } ) ;
390390 }
391391}
392+
393+ /**
394+ * Work in progress; Simplifying related terms
395+ */
396+ export interface ITermToRelatedTermsIndex2 {
397+ addTerms (
398+ termTexts : string [ ] ,
399+ eventHandler ?: IndexingEventHandlers ,
400+ ) : Promise < void > ;
401+ addSynonyms ( termText : string , relatedTerms : Term [ ] ) : void ;
402+ lookupSynonym ( termText : string ) : Term [ ] | undefined ;
403+ lookupTermsFuzzy (
404+ termTexts : string [ ] ,
405+ maxMatches ?: number ,
406+ thresholdScore ?: number ,
407+ ) : Promise < Term [ ] [ ] > ;
408+ }
409+
410+ export class TermToRelatedTermsIndex2 implements ITermToRelatedTermsIndex2 {
411+ private synonyms : TermToRelatedTermsMap ;
412+ private termEmbeddings : TermEmbeddingIndex ;
413+
414+ constructor ( settings : TextEmbeddingIndexSettings ) {
415+ this . synonyms = new TermToRelatedTermsMap ( ) ;
416+ this . termEmbeddings = new TermEmbeddingIndex ( settings ) ;
417+ }
418+
419+ public addTerms (
420+ termTexts : string [ ] ,
421+ eventHandler ?: IndexingEventHandlers ,
422+ ) : Promise < void > {
423+ return this . termEmbeddings . addTerms ( termTexts , eventHandler ) ;
424+ }
425+
426+ public addSynonyms ( termText : string , relatedTerm : Term [ ] ) : void {
427+ this . synonyms . addRelatedTerm ( termText , relatedTerm ) ;
428+ }
429+
430+ public lookupSynonym ( termText : string ) : Term [ ] | undefined {
431+ return this . synonyms . lookupTerm ( termText ) ;
432+ }
433+
434+ public lookupTermsFuzzy (
435+ termTexts : string [ ] ,
436+ maxMatches ?: number ,
437+ thresholdScore ?: number ,
438+ ) : Promise < Term [ ] [ ] > {
439+ return this . termEmbeddings . lookupTerms (
440+ termTexts ,
441+ maxMatches ,
442+ thresholdScore ,
443+ ) ;
444+ }
445+ }
0 commit comments