13

私はSolrの近接検索を頻繁に使用して、互いに指定された範囲内の単語を検索します。

"Government Spending" ~2

フレーズと単語または2つのフレーズを使用して近接検索を実行する方法があるのだろうかと思いました。これは可能ですか?もしそうなら、構文は何ですか?

4

3 に答える 3

16

これは「ある程度」実行可能であるように見えます。このテキストを検討してください:

This is more about traffic between Solr servers themselves 

「solr間のトラフィックが増える」〜2

「solr間の詳細」〜2

順序を変更しても機能します。

"solrについての詳細"〜2 "〜2

しかし、離れすぎていると機能しなくなります。

「サーバー自体の詳細」〜2

それがうまくいかない場合は、これを行うカスタムリクエストハンドラーを作成するのはおそらくそれほど難しいことではないと思います。新しい構文を定義する必要があるかもしれません。おそらく。のようなもの("phrase one" "phrase two") ~2です。瓦礫を使っていて、「フレーズ1」と「フレーズ2」のトークンがある程度近接しているLuceneクエリを作成すると、うまくいくと思います。(もちろん、実際にlucene java呼び出しを行う必要があります。クエリを渡すことはできません(このhttp://lucene.apache.org/java/2_2_0/api/index.htmlを読んでください))。

于 2010-08-14T22:30:24.980 に答える
12

箱から出して、複数の単語またはフレーズを使用してSolr近接検索を実行する方法を発見しました。以下を参照してください。

例えば。3つの言葉で:

"(word1)(word2)(word3)"〜10

例えば。2つのフレーズで:(二重引用符はエスケープする必要があることに注意してください)

"(\" phrase1 \ ")(\" phrase2 \ ")"〜10

于 2010-11-02T15:38:29.007 に答える
8

Solr 4以降、SurroundQueryParserで可能です。

たとえば、「フレーズ2」が「フレーズ1」の後に3語以内で続く場合、次のクエリを実行します。

3W(phrase W one, phrase W two)

「フレーズ1」の5語の近くで「フレーズ2」をクエリするには、次のようにします。

5N(phrase W one, phrase W two)
于 2013-11-11T12:19:27.823 に答える