2017-08-11 17 views
0

不明白爲什麼第一次搜索有效,而第二次搜索沒有?爲什麼通配符只能用於單個搜索條件而不是詞組搜索?

  1. softwar* eng?neering
  2. "softwar* eng?neering"

如果你需要一個短語中執行通配符搜索的能力,你必須將整個短語存儲在索引作爲一個單項。

根據Solr in Action,2014,通配符僅爲 ,意思是針對單個搜索項而不是詞組搜索。

背後的原因是什麼阻止了第二個在Solr中工作?謝謝。

回答

1

爲什麼它默認情況下不工作的原因你可以做到這一點的是,分析鏈不爲通配符搜索,充分調用,因爲你不能真正知道進程或當通配符處於活動狀態時將不同術語拆分爲令牌的位置。那些可以使用的過濾器是那些MultiTerMaware的。

要使它適用於詞組搜索作爲通配符,您應該有效地匹配整個字段值。即"softwar* eng?neering" should match軟件foobar奶酪engeneering`,這遠遠超出了最初的短語查詢必須匹配。

但是,只要您將文本作爲單個標記代替單獨標記,或者使用Persimmonium建議的其他查詢分析程序,就可以執行這些匹配。