![](/img/trans.png)
[英]how to index and search phrase query with special characters in lucene.net?
[英]Lucene.net - Search for terms within a phrase
我创建了这样的索引:
var doc = new Document();
doc.Add(new Field("id", product.Id.ToString(), Field.Store.YES, Field.Index.NO));
doc.Add(new Field("name", product.Label, Field.Store.NO, Field.Index.NOT_ANALYZED));
writer.AddDocument(doc);
我要完成的工作是搜索短语中所有术语的完全匹配。 假设我的索引包含2个文档(“ test 123”,“ foo”)
如果我输入类似的短语:
在不包含任何空格的短语中搜索“ foo”之类的单个元素可以正常工作。 但是,当该短语包含空格时,我在努力。 “我是测试123”和“测试123”均未返回任何内容。
我怀疑它可能来自于分析器,因此我尝试了StandardAnalyzer和KeywordAnalyzer,但问题仍然存在。 任何帮助,将不胜感激。
当我搜索字符串时,我会这样做:
var searchString =“我是foo”; var searchTerms = searchString.Split('');
该查询将看起来像:
+(name:i name:am name:foo) name:"I am foo"
解释:+在查询之前,必须先有一个词才可以匹配。 我逐个搜索每个词,更多匹配项=希格勒比分我也搜索搜索字符串作为短语,因为那样我就可以确保,如果它是直接匹配项,它将获得最高分。
您甚至可以使用Fuzzy和Wildcard进行搜索,因此覆盖范围很广,但仍然可以在顶部获得最佳结果。
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.