1

次のデータを持つオブジェクトがありました

String key  
String name  
List<String> address

上記のオブジェクトのluceneのドキュメントを作成するにはどうすればよいですか?名前とアドレスで検索する必要がありました。名前でインデックスを作成しましたが
、exのアドレスで インデックスを作成したいと思います。

key:1 name:sam address:lane no 1 behind la gardens  
key:1 name:sam address:near abc cross main road

コモム名とキーを持つ2つのドキュメントを保存する必要がある場合、インデックスを作成して保存するにはどうすればよいですか?

4

2 に答える 2

0
Document temp = new Document();
temp.add(new Field("name", "sam", Field.Store.YES, Field.Index.ANALYZED));
temp.add(new Field("address", "lane no 1 behind la gardens", Field.Store.YES,
                   Field.Index.ANALYZED));
indexWriter.addDocument(temp);

のように検索

name:sam address:gardens

上記のドキュメントと一致します

于 2012-12-10T18:39:33.117 に答える
0

私の理解が正しければ、任意の数の関連アドレスが必要で、個別に取得できますが、次のように簡単に検索できます。

address:"my address"

好きな名前のアドレスを保存し (ここでは「address1」と「address2」を使用します)、それらのテキストを 1 つの大きな古い「アドレス」フィールドに蓄積することをお勧めします。何かのようなもの:

doc.add(new Field("key", "1", Field.Store.YES, Field.Index.ANALYZED));
doc.add(new Field("name", "sam", Field.Store.YES, Field.Index.ANALYZED));
doc.add(new Field("address", "lane no 1 behind la gardens near abc cross main road", Field.Store.NO, Field.Index.ANALYZED));
//Note, that you can add multiple fields with the same name, and it will effectively be merged together, as:
doc.add(new Field("address", "more address information for searching", Field.Store.NO, Field.Index.ANALYZED));
doc.add(new Field("address1", "lane no 1 behind la gardens", Field.Store.YES, Field.Index.NO));
doc.add(new Field("address2", "near abc cross main road", Field.Store.YES, Field.Index.NO));

address は と で渡さField.Store.NOField.Index.ANALYZED、address1 と address2 はField.Store.YESとで渡されることに注意してくださいField.Index.NO。したがって、'address' で検索しますが、'address1' や 'address2' は検索しません。また、見つかったドキュメントから 'address1' と 'address2' を検索しますが、'address' は検索しません。

于 2012-12-10T21:34:15.017 に答える