【发布时间】:2012-01-27 13:37:59
【问题描述】:
我正在尝试将 NHibernate.Search 集成到多语言网站中。现在,这个网站包含一个类Article,它是多语言的。这是通过有一个单独的类 - Article_CultureInfo 来完成的,它存储特定于语言的内容。 Article 的字段是
Article
-------
ID
Name
而Article_CultureInfo 是:
Article_CultureInfo
-------
ID
ArticleId
CultureCode
PageTitle
Content
我正在使用Nhibernate.Search.Mapping 来绘制字段/文档信息。我想根据语言在可能的情况下合并搜索功能,例如词干分析和同义词分析。有什么方法可以在运行时指定 Lucene Analyzer,而不是编译时/初始化?
假设我们正在分析要存储在相应 Lucene 索引中的 PageTitle 的内容 - 根据 CultureCode 的值,该内容可以是英语、法语、意大利语等。因此,分析仪应根据此值进行更改。我尝试实现自定义MultilingualAnalyser,但我唯一可用的数据是要分析的字符串,即PageTitle 的值。仅凭此,我无法推断出语言。 (我可以研究语言检测技术,但这超出了我的范围,因为我已经具体知道它是什么,而且会矫枉过正而且不是 100% 可靠。)
如果我除了令牌之外还有一个对象的实例,我可以从中获取CultureCode 值,并进行相应的分析。任何想法都将不胜感激 - 我真的希望避免直接使用 Lucene.Net,因为 NHibernate.Search 看起来可以很好地集成。
谢谢!
【问题讨论】:
标签: c# lucene.net multilingual nhibernate.search