Skip to content

Instantly share code, notes, and snippets.

@ZNS
Last active November 23, 2021 11:27
Show Gist options
  • Save ZNS/6507776 to your computer and use it in GitHub Desktop.
Save ZNS/6507776 to your computer and use it in GitHub Desktop.
Multilingual ravendb-index
public BusinessQuery()
{
Map = prods => from prod in prods
select new
{
Language = prod.Language,
Categories = prod.Categories,
Areas = prod.Areas,
Date = prod.Dates != null ? prod.Dates.Select(x => x.Date).DefaultIfEmpty() : null,
Subjects = prod.Subjects,
AreaLevel = prod.AreaLevel,
Facilities = prod.Facilities != null ? prod.Facilities.Select(x => x.Id).DefaultIfEmpty() : null,
Type = prod.Type,
Latitude = prod.Latitude,
Longitude = prod.Longitude,
HasTDB = prod.TDBId > 0,
Bookable = prod.Booking != null && prod.Booking.Count > 0,
DatePublished = prod.DatePublished,
Relevance = prod.Relevance,
Popularity = prod.Popularity,
_ = CreateField("TextHighest" + prod.Language.ToUpper(), new System.Object[] { prod.CategoryNames, prod.AreaNames, !String.IsNullOrEmpty(prod.City) ? prod.City : prod.Area.Name }, false, true),
__ = CreateField("TextHigh" + prod.Language.ToUpper(), new System.Object[] { prod.Heading, prod.ListingText }, false, true),
___ = CreateField("TextLow" + prod.Language.ToUpper(), new System.Object[] { prod.ConferenceText, prod.FactsText, prod.Body }, false, true),
____ = CreateField("HeadingSort" + prod.Language.ToUpper(), prod.Heading, false, true),
_____ = CreateField("TextNGram" + prod.Language.ToUpper(), new System.Object[] { prod.Heading }),
______ = SpatialGenerate(prod.Latitude, prod.Longitude)
};
Sort(x => x.Relevance, Raven.Abstractions.Indexing.SortOptions.Float);
AnalyzersStrings = new Dictionary<string, string>()
{
{"TextHighestSV", "MyAssembly.Analyzers.SnowballHtmlAnalyzerSV, MyAssembly.Analyzers"},
{"TextHighSV", "MyAssembly.Analyzers.SnowballHtmlAnalyzerSV, MyAssembly.Analyzers"},
{"TextLowSV", "MyAssembly.Analyzers.SnowballHtmlAnalyzerSV, MyAssembly.Analyzers"},
{"HeadingSortSV", "Raven.Database.Indexing.Collation.Cultures.SvCollationAnalyzer, Raven.Database"},
{"TextNGramSV", "MyAssembly.Analyzers.EdgeNGramAnalyzerSV, MyAssembly.Analyzers"},
{"TextHighestEN", "MyAssembly.Analyzers.SnowballHtmlAnalyzer, MyAssembly.Analyzers"},
{"TextHighEN", "MyAssembly.Analyzers.SnowballHtmlAnalyzer, MyAssembly.Analyzers"},
{"TextLowEN", "MyAssembly.Analyzers.SnowballHtmlAnalyzer, MyAssembly.Analyzers"},
{"TextNGramEN", "MyAssembly.Analyzers.EdgeNGramAnalyzer, MyAssembly.Analyzers"},
{"TextHighestDE", "MyAssembly.Analyzers.SnowballHtmlAnalyzerDE, MyAssembly.Analyzers"},
{"TextHighDE", "MyAssembly.Analyzers.SnowballHtmlAnalyzerDE, MyAssembly.Analyzers"},
{"TextLowDE", "MyAssembly.Analyzers.SnowballHtmlAnalyzerDE, MyAssembly.Analyzers"},
{"HeadingSortDE", "Raven.Database.Indexing.Collation.Cultures.DeCollationAnalyzer, Raven.Database"},
{"TextNGramDE", "MyAssembly.Analyzers.EdgeNGramAnalyzerDE, MyAssembly.Analyzers"},
{"TextHighestNO", "MyAssembly.Analyzers.SnowballHtmlAnalyzerNO, MyAssembly.Analyzers"},
{"TextHighNO", "MyAssembly.Analyzers.SnowballHtmlAnalyzerNO, MyAssembly.Analyzers"},
{"TextLowNO", "MyAssembly.Analyzers.SnowballHtmlAnalyzerNO, MyAssembly.Analyzers"},
{"HeadingSortNO", "Raven.Database.Indexing.Collation.Cultures.NbCollationAnalyzer, Raven.Database"},
{"TextNGramNO", "MyAssembly.Analyzers.EdgeNGramAnalyzerNO, MyAssembly.Analyzers"},
{"TextHighestDA", "MyAssembly.Analyzers.SnowballHtmlAnalyzerDA, MyAssembly.Analyzers"},
{"TextHighDA", "MyAssembly.Analyzers.SnowballHtmlAnalyzerDA, MyAssembly.Analyzers"},
{"TextLowDA", "MyAssembly.Analyzers.SnowballHtmlAnalyzerDA, MyAssembly.Analyzers"},
{"HeadingSortDA", "Raven.Database.Indexing.Collation.Cultures.DaCollationAnalyzer, Raven.Database"},
{"TextNGramDA", "MyAssembly.Analyzers.EdgeNGramAnalyzerDA, MyAssembly.Analyzers"}
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment