1

タグのセットが複数回発生する xml ドキュメントがあります。たとえば<Address>、以下のドキュメントのタグ。つまり、親タグ Address が 2 回出現します。

検索して、以下に示す「応答ドキュメント」のような応答を solr が返すようにしたいName=ABCDZipCode=33333考えています。Address をセパレータで区切られたすべてのサブフィールドを持つ複数値の単一フィールドに定義せずに、solr4.0 でこれを行うことは可能ですか?

文書

<doc>
      <Name>ABCD</Name>
      <CompanyName>1234</CompanyName>
      <Address>
          <AddressLine1> 1725 ABCD Drive </AddressLine1>
          <AddressLine2> </Address Line2>
          <City>Miami</City>
          <State>FL</State>
          <Zipcode>33333</Zipcode>
          <AddressType>Home</AddressType>
      </Address>
      <Address>
          <AddressLine1> 16551 business blvd </AddressLine1>
          <AddressLine2> </Address Line2>
          <City>Miami</City>
          <State>FL</State>
          <Zipcode>33333</Zipcode>
          <AddressType>Business</AddressType>
      </Address>
</doc>
<doc>
      <Name>XYZWR</Name>
      <CompanyName>1234</CompanyName>
      <Address>
          <AddressLine1> 1725 ABCD Drive </AddressLine1>
          <AddressLine2> </Address Line2>
          <City>Miami</City>
          <State>FL</State>
          <Zipcode>33333</Zipcode>
          <AddressType>Home</AddressType>
      </Address>
      <Address>
          <AddressLine1> 16551 business blvd </AddressLine1>
          <AddressLine2> </Address Line2>
          <City>Phoenix</City>
          <State>AZ</State>
          <Zipcode>33333</Zipcode>
          <AddressType>Business</AddressType>
      </Address>
</doc>

回答文書

   <doc>
          <Name>ABCD</Name>
          <CompanyName>1234</CompanyName>
          <Address>
              <AddressLine1> 1725 ABCD Drive </AddressLine1>
              <AddressLine2> </Address Line2>
              <City>Miami</City>
              <State>FL</State>
              <Zipcode>33333</Zipcode>
              <AddressType>Home</AddressType>
          </Address>
          <Address>
              <AddressLine1> 16551 business blvd </AddressLine1>
              <AddressLine2> </Address Line2>
              <City>Miami</City>
              <State>FL</State>
              <Zipcode>33333</Zipcode>
              <AddressType>Business</AddressType>
          </Address>
    </doc>

よろしく

4

1 に答える 1

0

非正規化して保存する必要があります。それを回避する方法はありません。したがって、次のようなフィールドを保存します

home_addressline1
home_zipcode
etc.,

検索に関しては、動的フィールド (2 種類の動的フィールド) と、これらの動的フィールドに適切にコピーするコピー フィールドを使用できます。

address_*
*_home (and/or) *_business etc.,

ユーザーが郵便番号を検索したいが、住所の「タイプ」を気にしない場合は address_* を使用しますが、ユーザーが「ホームタイプ」のみを検索したい場合は *_home を使用し、検索のみのリクエストが殺到し始めますすぐに特定のアドレスタイプ:)

于 2013-08-09T17:22:10.200 に答える