このページの項目
KandaSearchでは、検索エンジンの機能の評価・検証を容易に進められるようにするため、livedoorニュースコーパスをはじめ、いくつかのコンフィグとそれに対応するデータを拡張機能ライブラリーで配布しています。
ご利用にあたっては、以下の流れで操作を行ってください。
それでは、各コンフィグとデータの特徴について説明します。
なお、Apache Solrのバージョンアップなどにより、ご紹介しているコンフィグやデータの内容が異なる場合があります。
一般的なECサイトで取り扱う商品情報をスキーマ構造としたコンフィグとデータです。
managed-schema.xml
には以下のようなフィールドが定義されています。
<uniqueKey>id</uniqueKey>
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="productCode" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="productName" type="text_ja" indexed="true" stored="true" required="false" multiValued="false" />
<field name="productName_2g" type="text_2g" indexed="true" stored="true" required="false" multiValued="false" />
<field name="productNameKana" type="text_2g" indexed="true" stored="true" required="false" multiValued="false" />
<field name="promptForImage" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="image" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="price" type="plong" indexed="true" stored="true" required="false" multiValued="false" />
<field name="taxKbn" type="boolean" indexed="true" stored="true" required="false" multiValued="false" />
<field name="makerName" type="text_ja" indexed="true" stored="true" required="false" multiValued="false" />
<field name="makerName_2g" type="text_2g" indexed="true" stored="true" required="false" multiValued="false" />
<field name="makerNameKana" type="text_2g" indexed="true" stored="true" required="false" multiValued="false" />
<field name="makerProduCode" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="categoryL" type="text_ja" indexed="true" stored="true" required="false" multiValued="false" />
<field name="categoryL_2g" type="text_2g" indexed="true" stored="true" required="false" multiValued="false" />
<field name="categoryM" type="text_ja" indexed="true" stored="true" required="false" multiValued="false" />
<field name="categoryM_2g" type="text_2g" indexed="true" stored="true" required="false" multiValued="false" />
<field name="categoryS" type="text_ja" indexed="true" stored="true" required="false" multiValued="false" />
<field name="categoryS_2g" type="text_2g" indexed="true" stored="true" required="false" multiValued="false" />
<field name="categoryFacetInfo" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="stock" type="plong" indexed="true" stored="true" required="false" multiValued="false" />
<field name="size" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="weight" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="unitName" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="salesUnit" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="productInfo" type="text_ja" indexed="true" stored="true" required="false" multiValued="true" />
<field name="productInfo_2g" type="text_2g" indexed="true" stored="true" required="false" multiValued="true" />
<field name="standardDeliveryDate" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="campaignFlg" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="campaignStart" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="campaignEnd" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="campaignPrice" type="plong" indexed="true" stored="true" required="false" multiValued="false" />
<field name="dateSince" type="pdate" indexed="true" stored="true"/>
このコンフィグとデータの主な特徴は次の通りです。
<analyzer />
子要素を持つフィールド型による「文字の正規化」「単語分割」「トークンのフィルタリング」「類義語展開」が設定されています。さいたま市の公共施設の施設名、所在地、緯度、経度などをスキーマ構造としたコンフィグとデータです。ファセットの機能や地理検索機能を試すために最適なコンフィグとデータです。
managed-schema.xml
には以下のようなフィールドが定義されています。
<uniqueKey>id</uniqueKey>
<field name="_version_" type="plong" indexed="false" stored="false"/>
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
<field name="category" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="name" type="text_ja" indexed="true" stored="true"/>
<field name="name_2g" type="text_2g" indexed="true" stored="true"/>
<field name="name_forward" type="text_forward" indexed="true" stored="true"/>
<field name="name_backward" type="text_backward" indexed="true" stored="true"/>
<field name="hierarchy" type="pathhie" indexed="true" stored="true" omitNorms="true" multiValued="false"/>
<field name="address" type="text_ja" indexed="true" stored="true"/>
<field name="address_2g" type="text_2g" indexed="true" stored="true"/>
<field name="location" type="location" indexed="true" stored="true" multiValued="false"/>
このコンフィグとデータの主な特徴は次の通りです。
地理検索について少し掘り下げてみましょう。
地理検索とは、検索対象文書として建物や施設を扱う際、緯度経度情報をインデクシングすることで、施設を検索する際に地図上の位置でフィルタリングしたり、ある特定の場所から近い順に検索結果を表示したりする等を可能にする検索です。
ここでは、「さいたま市役所の半径1km以内にある公共施設を近い順に検索する」を例に、地理検索を行ってみます。
最初に、インスタンスビューの「検索」より、以下のパラーメータを指定して、さいたま市役所の緯度・経度を取得します。
さいたま市役所の緯度経度が表示されますので、この情報を使って、以下のパラメータで検索を行います。
すると以下のように、さいたま市役所の付近にある公共施設が、市役所から近い順に表示されます。
ブラウザの別タブでGoogle Mapへアクセスし、検索画面に表示された緯度・経度を使って検索し、施設の場所を表示してみましょう。
例) 消防局庁舎・浦和消防署の場合 35.862001,139.646234
ここで利用したコンフィグファイルの solrconfig.xml には、地理検索に必要な次のパラメータがデフォルトで指定されています。
インスタンスビューの「コンフィグ」にて、コレクション(ここでは geospatial) を指定して、solrconfig.xml の内容を確認しましょう。
上記のパラメータは、solrconfig.xml には次のように定義されています。
<requestHandler name="/spatial" class="solr.SearchHandler">
<lst name="defaults">
:
<str name="spatial">true</str>
<str name="fq">{!geofilt}</str>
<str name="sort">geodist() asc</str>
<str name="sfield">location</str>
<int name="d">1</int>
:
</lst>
:
</requestHandler>
ここまでが地理検索についての説明です。
なお、このコンフィグの managed-schema.xml
には、以下のようなフィールドが定義されています。
<uniqueKey>id</uniqueKey>
<field name="_version_" type="plong" indexed="false" stored="false"/>
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
<field name="category" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="name" type="text_ja" indexed="true" stored="true"/>
<field name="name_2g" type="text_2g" indexed="true" stored="true"/>
<field name="name_forward" type="text_forward" indexed="true" stored="true"/>
<field name="name_backward" type="text_backward" indexed="true" stored="true"/>
<field name="hierarchy" type="pathhie" indexed="true" stored="true" omitNorms="true" multiValued="false"/>
<field name="address" type="text_ja" indexed="true" stored="true"/>
<field name="address_2g" type="text_2g" indexed="true" stored="true"/>
<field name="location" type="location" indexed="true" stored="true" multiValued="false"/>
千葉県の子育て施設一覧(認可保育所)のオープンデータをもとに、施設の市町村名、施設名、住所などをスキーマ構造としたコンフィグとデータです。所在市町村や利用曜日などによる絞り込みのファセット機能を試すために最適なコンフィグとデータです。
managed-schema.xml
には以下のようなフィールドが定義されています。(コンフィグのバージョンにより、以下とは異なる場合があります)
<uniqueKey>id</uniqueKey>
<field name="prefecturesCode" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="prefecturesName" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="cityName" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="childcareCenterName" type="text_ja" indexed="true" stored="true" required="false" multiValued="false" />
<field name="childcareCenterNameKana" type="text_ja" indexed="true" stored="true" required="false" multiValued="false" />
<field name="childcareCenterKbn" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="address1" type="text_ja" indexed="true" stored="true" required="false" multiValued="false" />
<field name="address2" type="text_ja" indexed="true" stored="true" required="false" multiValued="false" />
<field name="latitude" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="longitude" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="access" type="text_ja" indexed="true" stored="true" required="false" multiValued="false" />
<field name="parkingInfo" type="text_ja" indexed="true" stored="true" required="false" multiValued="true" />
<field name="parkingFlg" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="telNo" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="telExNo" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="faxNo" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="corpNo" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="groupName" type="text_ja" indexed="true" stored="true" required="false" multiValued="false" />
<field name="authDate" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="capacity" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="targetAge" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="availDate" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="monFlg" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="tueFlg" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="wedFlg" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="thuFlg" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="friFlg" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="satFlg" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="sunFlg" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="stTime" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="endTime" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="availDaytimeInfo" type="text_ja" indexed="true" stored="true" required="false" multiValued="true" />
<field name="tempAccept" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="url" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="remarks" type="text_ja" indexed="true" stored="true" required="false" multiValued="true" />
このコンフィグとデータの主な特徴は次の通りです。
以上、拡張機能ライブラリーで配布しているコンフィグとデータのご紹介でした。