簡體   English   中英

SOLR:對帶空格的文本字段進行模糊搜索

[英]SOLR: Fuzzy search on a text field with spaces

這是我的問題:我有一個由SOLR索引的文本字段,它是數據庫中的用戶名。 我希望搜索內容模糊而不是完全匹配。 例如; 如果用戶名是“ krishnarayaprolu”,並且我搜索拼寫錯誤“ krishnIrayaprolu”,它仍應返回記錄。

這對我來說很好用,除非用戶名中有空格。 因此,用戶名“ krishna rayaprolu”和搜索字符串“ krishnI rayaprolu〜0.5”不會返回記錄。 如果拼寫錯誤以“ krishna rayaprolI〜0.5”結尾,則返回正常。 有任何想法嗎?

對於我的配置,我嘗試了WhiteSpaceTokenizerFactory和StandardTokenizerFactory。 在搜索方面,我嘗試使用引號並轉義空格。 他們都沒有解決我的空間和模糊性問題。 我正在使用管理界面進行搜索。 感謝任何指針。

我有解決您的問題的方法,只需要在架構中添加一些字段即可。

創建新的ngram字段,然后在ngram字段中復制所有標題名稱。

當您對拼寫錯誤的單詞進行任何查詢時,您得到的結果為空,然后拆分單詞並再次觸發相同的查詢,您將獲得預期的結果。

Example : Suppose user searching for word "krishna rayaprolu" but type it as "krishnI rayaprolu~0.5", then 
create query in below way you will get results as expected hopefully.

**(ngram:"krishnI rayaprolu~0.5" OR ngram:"kri" OR  ngram:"kris" OR ngram:"krish" OR ngram:"krishn" OR ngram:"krishnI" OR ngram:"ray" OR ngram:"raya" OR ngram:"rayap" ..... )**

我們已經按詞順序對單詞進行了拆分,並對字段ngram進行了查詢。

希望對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM