Results 変数 = 《Index》
.search(《Query》);
Results<ScoredDocument> results;
for (ScoredDocument 変数 : 《Results》) { ……略…… }このようにして順番に検索されたScoredDocumentを取得し処理していきます。ScoredDocumentには、保管されている情報を取得するためのメソッド類が要されています。String 変数 = 《Document》.getId();保管されているDocumentには自動的にIDが割り振られています。これを取得するためのものです。
Iterable 変数 = 《Document》.getField( 名前 );Documentに保管されているフィールドの取得はこれらのメソッドで行えます。getFieldは、指定した名前のFieldをすべてIterableにまとめたものを返します。getOnlyFieldは、指定した名前のFieldから最初の1つだけを返します。通常、指定した名前のフィールドが1種類しかないなら、getOnlyFieldでいいでしょう。
Field 変数 = 《Document》.getOnlyField( 名前 );
String 変数 = 《Field》.getName();Fieldには、そのフィールドに保管されている値を取り出すためのメソッドが多数揃っています。Fieldインスタンスを作成するとき、Field.Builderにさまざまな値を設定するためのメソッドが用意されていましたが、それらがそのまま値を取り出すものとしても用意されているわけです。これらのメソッドで、保管されている値を取り出し処理していきます。くれぐれも、そのフィールドに保管されている値の種類にあったメソッドを呼び出すように注意してください。
String 変数 = 《Field》.getText();
String 変数 = 《Field》.getHTML();
String 変数 = 《Field》.getAtom();
Double 変数 = 《Field》.getNumber();
Date 変数 = 《Field》.getDate();
FieldType 変数 = 《Field》.getFieldType();
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※MyGaeAppServletクラスに用意するメソッド
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException {
response.setContentType("text/html");
request.setCharacterEncoding("utf8");
response.setCharacterEncoding("utf8");
session = request.getSession();
this.getAllDocument();
try {
this.getServletContext()
.getRequestDispatcher("/helo.jsp")
.forward(request, response);
} catch (ServletException e) {
e.printStackTrace();
}
}
public void getAllDocument() {
Index index = SearchServiceFactory.getSearchService()
.getIndex(IndexSpec.newBuilder()
.setName("mydataIndex"));
try {
Query query = Query.newBuilder()
.setOptions(QueryOptions
.newBuilder()
.setLimit(10)
.setSortOptions(SortOptions.newBuilder()
.addSortExpression(SortExpression.newBuilder()
.setExpression("title")
.setDefaultValue("")
.setDirection(SortDirection.ASCENDING)))
.build()).build("");
Results<ScoredDocument> results = index.search(query);
String result = "<table width=\"700\">";
for (ScoredDocument document : results) {
String id = document.getId();
String title = document.getOnlyField("title")
.getText();
String content = document.getOnlyField("content")
.getText();
Date date = document.getOnlyField("datetime")
.getDate();
result += "<tr><td>" + id + "</td><td>" + title + "</td><td>" +
content + "</td><td>" + date + "</td></tr>";
}
result += "</table>";
session.setAttribute("result",result);
session.setAttribute("message", "全ドキュメントを取得しました。");
} catch (SearchException e) {
session.setAttribute("message", "検索に失敗しました。");
}
}
| << 前へ | 次へ >> |