热点资讯
浆果儿 女同 你的位置:情色电影下载 > 浆果儿 女同 > 绫 丝袜 ビッグ・データ環境でのプロパティ・グラフの使用
绫 丝袜 ビッグ・データ環境でのプロパティ・グラフの使用发布日期:2024-10-08 20:54    点击次数:196

绫 丝袜 ビッグ・データ環境でのプロパティ・グラフの使用

Apache Luceneを使用したテキスト索引に対する索引問合せの実行绫 丝袜

次のコード・フラグメントは、Apache Luceneを使用して自動索引を作成し、特定のキー/値ペアを指定してテキスト索引に対する問合せを実行します。

// Do a parallel data loading
OraclePropertyGraphDataLoader opgdl = 
               OraclePropertyGraphDataLoader.getInstance();

opgdl.loadData(opg, szOPVFile, szOPEFile, dop); 
    
// Create an automatic index using Apache Lucene engine. 
// Specify Index Directory parameters (number of directories, 
// number of connections to database, batch size, commit size, 
// enable datatypes, location)
OracleIndexParameters indexParams = 
            OracleIndexParameters.buildFS(4, 4, 10000, 50000, true, 
                                          "/home/data/text-index ");
opg.setDefaultIndexParameters(indexParams);

// Create manual indexing on above properties for all vertices
OracleIndex<Edge> index = ((OracleIndex<Edge>) opg.createIndex("myIdx", Edge.class));
 
Vertex v1 = opg.getVertices("name", "Barack Obama").iterator().next();
 
Iterator<Edge> edges
                = v1.getEdges(Direction.OUT, "collaborates").iterator();
 
while (edges.hasNext()) {
  Edge edge = edges.next();
  Vertex vIn = edge.getVertex(Direction.IN);
  index.put("collaboratesWith", vIn.getProperty("name"), edge);
  index.put("country", vIn.getProperty("country"), edge);
}
 
// Wildcard searching is supported using true parameter.
Iterator<Edge> edges = index.get("country", "United States").iterator();
System.out.println("----- Edges with query: " + queryExpr + " -----");
long countE = 0;
while (edges.hasNext()) {
  System.out.println(edges.next());
  countE++;
}
System.out.println("Edges found: "+ countE);

この場合、テキスト索引により、キーおよび値オブジェクトから索引問合せが生成されます。また、useWildcardsフラグが指定または有効化されていない場合、获取される結果には正確な一致のみが含まれます。値オブジェクトが数値または日時値である場合、生成される問合せは、値によって下限および上限が定義されているかどうかとは関係なく、両端を含む範囲問合せになります。数値または日時の一致のみが获取されます。

値が笔墨列である場合、データ型とは関係なく一致するすべてのキー/値ペアが获取されます。このタイプの問合せの結果として生成されるテキスト問合せは、オプションの検索条目セット(サポート対象のデータ型ごとに1つずつ)が含まれるブール問合せです。データ型の処理の詳細は、「データ型の処理」を参照してください。

したがって、前のコード例では、問合せ式country1:"United States" OR country9:"United States" OR … OR countryE:"United States" (Luceneのデータ型処理が有効である場合)、または country:"1United States" OR country:"2United States" OR … OR country:"EUnited States" (Luceneのデータ型処理が無効である場合)を生成します。

嘟嘟嘟在线视频免费观看

笔墨列値オブジェクトでワイルドカードが有効である場合、値はApache Lucene構文を使用して書き込む必要があります。Apache Luceneを使用したテキスト検索構文の詳細は、https://lucene.apache.org/core/2_9_4/queryparsersyntax.htmlを参照してください

問合せの実行対象のデータ型クラスを指定することにより、一致するキー/値ペアのデータ型をフィルタできます。次のコード・フラグメントは、笔墨列データ型のみを捏つ単一のキー/値ペアを使用してテキスト索引に対して問合せを実行します。次のコードは、問合せ式country1:"United States" (Luceneのデータ型処理が有効である場合)またはcountry:"1United States" (Luceneのデータ型処理が無効である場合)を生成します。

// Wildcard searching is supported using true parameter.
Iterator<Edge> edges = index.get("country", "United States", true, String.class).iterator();

System.out.println("----- Edges with query: " + queryExpr + " -----");
long countE = 0;
while (edges.hasNext()) {
  System.out.println(edges.next());
  countE++;
}
System.out.println("Edges found: "+ countE);

ブール演算子を使用して処理する場合は、問合せで適切な一致が見つかるように、後続の各キー/値ペアにデータ型の接頭辞/接尾辞を追加する必要があります。自動および手動テキスト索引に必要な問合せ構文およびデータ型識別子を使用して独自のLuceneテキスト検索問合せを作成するユーザーを赈济するためにユーティリティが宅心されています。

LuceneIndex内のメソッドbuildSearchTerm(key, value, dtClass)は、キー(または値)にデータ型識別子を追加し、特定のデータ型およびApache Luceneのデータ型処理構成に基づいて値を必要な笔墨列表現に変換することにより、field:query_expr时事の問合せ式を作成します。

次のコード・フラグメントは、buildSearchTermメソッドを使用して、前の例で使用した問合せ式country1:United* (Luceneのデータ型処理が有効である場合)またはcountry:1United* (Luceneのデータ型処理が無効である場合)を生成します。

String szQueryStrCountry = index.buildSearchTerm("country", 
                                  "United*", String.class);

キーおよび値を個別オブジェクトとして扱ってWildcardQueryのような異なるLucene問合せを構築するために、LuceneIndex内のメソッドappendDatatypesSuffixToKey(key, dtClass)およびappendDatatypesSuffixToValue(value, dtClass)は、適切なデータ型識別子を追加し、特定のデータ型に基づいて値を必要なLucene笔墨列表現に変換します。

次のコード・フラグメントは、appendDatatypesSuffixToKeyメソッドを使用してLuceneテキスト問合せで必要なフィールド名を生成します。Luceneのデータ型処理が有効である場合、返される笔墨列により、笔墨列データ型識別子がキー(country1)の接尾辞として追加されます。それ之外の場合、获取された笔墨列は元のキー(country)になります。

String key = index.appendDatatypesSuffixToKey("country", String.class);

次のコード・フラグメントは、appendDatatypesSuffixToValueメソッドを使用して、Luceneテキスト問合せで必要な問合せ本时事を生成します。Luceneのデータ型処理が無効である場合、返される笔墨列により、笔墨列データ型識別子がキー(1United*)の接頭辞として追加されます。他のすべての場合、返される笔墨列は、値の笔墨列表現(United*)になります。

String value = index.appendDatatypesSuffixToValue("United*", String.class);

LuceneIndexは、メソッドbuildSearchTermObject(key绫 丝袜, value, dtClass)を使用した条目オブジェクトの生成もサポートしています。条目オブジェクトは频频、获取対象のドキュメントのフィールドおよび値を制約するためにLucene問合せオブジェクトの様々な型の間で使用されます。次のコード・フラグメントは、buildSearchTermObjectメソッドを使用してWildcardQueryオブジェクトを作成する材干を示します。

Term term = index.buildSearchTermObject("country", "United*", String.class);  
Query query = new WildcardQuery(term);