如果您将字段设置为LowerCaseKeywordAnalyzer
,RavenDB默认使用StandardAnalyzer
并切换{如果我没记错的话)FieldIndexing.Analyzed
。
对于动态字段,RavenDB也默认为LowerCaseKeywordAnalyzer
。
我想改变这个。我希望RavenDB使用StandardAnalyzer
ALL 我的动态字段。
我该怎么做?
我 有 来使用插件并实施AbstractAnalyzerGenerator
吗?
我不愿意这样做,因为这会使部署变得更复杂,就像更改默认分析器一样简单。
答案 0 :(得分:1)
我用下一个代码解决了这个问题。
public class Product_ByFields : AbstractIndexCreationTask<Product>
{
public Product_ByFields()
{
Map = products => from product in products
select new
{
_ = product.FieldValues.Select(f => CreateField(f.Key, f.Value.SearchTerms, false, true))
};
this.Analyze("__all_fields", "Lucene.Net.Analysis.Standard.StandardAnalyzer");
}
}
答案 1 :(得分:0)
您可以使用:
_= CreateField("Foo", "bar", stored: false, analyzed: true);