5

この質問は、この質問からのスピンオフです。私の問い合わせは 2 つあるのですが、どちらも関連しているので、まとめておくとよいと思います。

  • プログラムでクエリを作成する方法。文字列の作成を開始し、その文字列をクエリ パーサーで解析できることはわかっています。しかし、他のリソースから少しずつ情報を収集しているので、これを行うためのプログラム的な方法があります。
  • Lucene クエリの構文規則は何ですか?

- 編集 -

作成したいクエリの要件の例を示します
。5 つのフィールドがあるとします。

  1. ファーストネーム
  2. 苗字
  3. 住所
  4. すべての

すべてのフィールドはオプションです。最後のフィールドは、他のすべてのフィールドを検索する必要があります。すべてのフィールドを調べて、それが IsNullOrEmpty() かどうかを確認します。そうでない場合は、クエリの一部を追加して、関連する検索部分を追加したいと思います。
名と姓は完全に一致し、他のフィールドよりも重要度が高くなる必要があります。Age は文字列であり、完全に一致する必要があります。アドレスは順序によって異なる場合があります。すべての順序が異なる場合もあります。

これについてどうすればよいですか?

4

1 に答える 1

6

BooleanQueryクラスを使用してクエリ オブジェクトを作成します。これらのいずれかを作成し、それに他の Query オブジェクトを add() して、より大きな分離クエリを作成します。

  • BooleanQuery q = new BooleanQuery();
  • q.add(qFirstName, Occur.SHOULD);
  • q.add(qLastName, Occur.SHOULD);
  • ...

アトミック クエリは、Term および TermQuery クラスを使用して構築できます。

(リンクと例は Lucene Java のものですが、.NET も同様です。)

于 2010-04-22T09:09:09.863 に答える