2017-11-24 10 views
0
  1. Solrによって2フィールド以上のクエリを行う必要があります。 1つはbuyerCountry、もう1つは詳細です。両方とも索引付けされます。
  2. 例:これは、いくつかのデータ 複数のフィールドにわたるSolrクエリ、1つのフィールドを完全に一致させる必要はありません

    { 
     
         "buyerCountry":"Peru", 
     
         "arrivaldate":"2017-08-24 00:00:00", 
     
         "supplier":"MONSANTO HOLLAND BV", 
     
         "details":"Demas Semillas Hortalizas (Incluso ?Silvestres?)", 
     
         "buyer":"MONSANTO PERU S A", 
     
         "id":"IMP_PERU-000029fbb06ee9cb49985cbf3600952b", 
     
         "_version_":1584917551396159488}, 
     
         { 
     
         "buyerCountry":"Peru", 
     
         "arrivaldate":"2017-08-28 00:00:00", 
     
         "supplier":"SCHNEIDER ELECTRIC INDUSTRIES SAS", 
     
         "details":"Reles, Para Corriente Nominal Inferior", 
     
         "buyer":"SCHNEIDER ELECTRIC PERU S A", 
     
         "id":"IMP_PERU-00003108b929bf36def5ccf37cc23485", 
     
         "_version_":1584917551525134336}, 
     
         { 
     
         "buyerCountry":"Peru", 
     
         "arrivaldate":"2017-08-29 00:00:00", 
     
         "supplier":"FEDERAL-MOGUL CORPORATION", 
     
         "details":"Demas Cajas Cojinetes Cojinetes", 
     
         "buyer":"REPUESTOS SERVICIOS Y DISTRIBUC S A C", 
     
         "id":"IMP_PERU-000080b39e7e83dbae36c5b465d9cb6c", 
     
         "_version_":1584917551527231488}

  3. である私は完全にフィールドbuyerCountryと一致する必要がありますが、フィールドの詳細については、私は唯一のフィールドの詳細のすべての検索語ということが必要です。私はq = buyerCountry: "ペルー" AND details = "Demas Semillas"、レコードは無かった。 fq = buyerCountry: "ペルー" & fq =詳細: "Demas Semillas"、どちらのレコードもありません。誰でも助けてくれますか?

+0

buyerCountryのフィールドタイプと詳細は何ですか? – MatsLindh

+0

はどちらも文字列タイプ –

+0

です。その後、完全一致のみが可能です。適切な分析チェーンを使用して、フィールドタイプをテキストフィールドに変更する必要があります。 StandardTokenizer/Lowercasefilterなどで標準のテキストフィールドを使用すると、おそらく問題なく動作します。 – MatsLindh

答えて

2

文字列フィールド(通常はStrFieldに基づいています)は完全一致のみが可能です。フィールドに挿入された値には、これ以上の処理は行われません。

フィールドを処理する(トークンをトークン化して別のトークンにトークン化し、それらのトークンをさらに小文字にするなど)場合は、TextFieldを使用して正規化/処理を行う解析チェーンを追加する必要があります実行したい。

この場合は、StandardTokenizerと小文字フィルタが問題なく、詳細フィールドが別々のトークンに分割されます。 Demas Semillas Hortalizas (Incluso ?Silvestres?)は別個トークンとしてdemassemillashortalizasinclusosilvestresに加工され、Demas Semillasを検索するとき、同様の処理が起こる - demassemillasを。クエリの両方のトークンが一致するため、ドキュメントが返されます。

関連する問題