我需要使用包含大約800萬行的索引創建FuzzyQuery。這種查詢很慢,每場比賽需要大約20秒。事實是,在進行模糊搜索之前,我可以使用另一個字段將搜索結果縮小到約5000個點擊量。爲了達到這個目的,我應該能夠首先通過「較窄」字段進行搜索,然後在這些結果中使用模糊搜索。Lucene:使用FuzzyQuery在搜索範圍內搜索
按照lucene FAQ,我要做的唯一事情是BooleanQuery,這裏的「窄」應符合規定(BooleanClause.Occur.MUST在Lucene中3)。
現在我已經嘗試了兩種不同的方法:
一個)使用查詢解析器,用等的輸入: narrower:+narrowing_text fuzzy:fuzzy_text~0.9
B)構建BooleanQuery與TermQuery和一個FuzzyQuery
都沒有工作,我得到的時間大約是那些不使用較窄的時間。
此外,只是爲了檢查如果狹窄工作的時間應該會好得多,我只索引5000個匹配更窄的項目,並且搜索速度很快。
如果有人奇怪,我使用pylucene 3.0.2。
模糊查詢得到多少結果?我問,因爲我想知道是實際搜索還是重寫速度很慢。 – Xodarap 2010-10-13 19:55:45