![](/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.