我有一个为我的产品定制索引,我正在使用子集分析器。这个分析器工作的很好,但是如果你做字段搜索,它不工作。
例如,我有一个包含以下字段的文档:
"documentname", "My-Document-Name""tags", "1234,5678,9101""documentdescription", "This is a great Document, My-Document-Name."当我只搜索"name AND tags:(1234)"时,我会在我的结果中得到这个文档,因为它搜索+_content:name。
-- ,不过,
当我搜索"documentname:(name)^3.0 AND tags:(1234)"时,我不会在我的结果中得到这个文档。
当然,当我执行"documentname:(*name*)^3.0"时,我会看到一个解析错误:'*‘或’?不允许作为WildcardQuery中的第一个字符。
如何在自定义CMS.Search How部件中启用通配符查询?
发布于 2018-08-23 23:29:36
首先,您必须确保您所检查的字段位于具有正确名称的索引中。文档名可能不在索引中--它可以称为_title,这取决于如何设置索引。获取卢克尔并检查索引(应该在\CMS\App_Data\CMSModules\SmartSearch\YourIndexName中)。你也可以用卢克来测试你的搜索结果。
例如,没有标记,但是有文件标签字段。
P.S. 通配符正在工作,您是对的,默认情况下不能将它们作为第一个字符使用(lucene说:您不能使用*或?符号作为搜索的第一个字符),但是有在lucene.net中设置它的一种方法,虽然我不知道在Kentico中是否有这样的设置。但是我认为您不需要通配符,所以您的查询应该是(假设您在索引中有文档名和文档标记):
+(documentname:"My-Name" AND documenttags:"tag1")https://stackoverflow.com/questions/51994685
复制相似问题