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