2016-12-06 4 views
0

私は自分のpocにsolrを使用することにしています。私は以下の問題を抱いています。解決策を見つけることができません。SolrでのURLのサブワードの索引付け

ご協力いただければ幸いです。 のURL: 1.www.abc.com 2.www.abcdef.com 3.www.123.com/abc 4.www.123以下

は私が達成しようとしています4例あり.com/abcdef

私は標準的なトークナイザを使用して、以下のように単語を分割してインデックスを付けるURLのインデックスを作成しています。 1.www.abc.com 2.www.abcdef.com 3.www.123.comとABC 4.www.123.comとABCDEF

私はABCを検索すると私だけになるだろう検索結果として3番目のURL。

しかし、私はキーワードabcで検索すると4つのURLをすべて取得したいと思います。

Kinldyが提案します。

ありがとうございました。

答えて

0

文字列 "abc"で検索すると、トークン "abc"を含むすべてのドキュメントが結果として取得されます。 abcはabcにのみ一致します。

は、クエリ「ABC」を使用して一致させるなど。ABCDEまたはABCDと一致するように、あなたは、Edge Nグラムについて

読むnグラムを使用してインデックス文書をする必要があります。

フィールドアナライザtype = "index"のフィールドタイマー定義に対して、以下のフィルタをスキーマファイルに追加します。

<filter class="solr.EdgeNGramFilterFactory" maxGramSize="20" minGramSize="2"/> 

例:フィールド名が= "ABCDE"

EdgeNGramFilterFactoryが

+0

、ABCDE、AB、BC、CD、DE、ABC、BCD、CDE、ABCD、BCDEのようなトークンを生成しますあなたのおかげで返信vinod。私はいくつかの文字のフィールド名があり、トークンを生成するなら、NGramの使い方は良いと思う。しかし、私の場合、フィールドはURLの長さが非常に長くなる可能性があります。その場合、トークンが膨大な数になります。あなたはどう思いますか。 – user3257510

+0

正しい、より多くのトークンを生成します。インデックスサイズとインデックス時間の両方が増加します。 solrを使用する他の方法はありません。 – vinod

関連する問題