Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-12505

Streaming expressions - fetch() does not work as expected

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 7.3.1
    • None
    • streaming expressions
    • None
    • Windows 10, Java 10, Solr Cloud 7.3.1

    Description

      The issue:

      1. when I try to use fetch() within a streaming expression, it does not enrich the inner source data. The result is exactly the same as if there was no surrounding fetch() function.
      2. but it works if I try to do a leftOuterJoin() function instead.

      Use the attached 'names' collection configuration.
      SOLR works in cloud mode, streaming expressions do work, ie. stream(), join(), etc

      Data to be inserted:
      ==

      <add>
       <doc>
        <field name="id">1</field>
        <field name="type">entity</field>
        <field name="name">Orignal Darek name</field>
        <field name="country">uk</field>
        <doc>
         <field name="id">N001</field>
         <field name="parentId">1</field>
         <field name="type">alternate</field>
         <field name="alias">Darek</field>
        </doc>
        <doc>
         <field name="id">N002</field>
         <field name="parentId">1</field>
         <field name="type">alternate</field>
         <field name="alias">Darke</field>
        </doc>
        <doc>
         <field name="id">N003</field>
         <field name="parentId">1</field>
         <field name="type">alternate</field>
            <field name="alias">Darko</field>
        </doc>
       </doc>
       <doc>
        <field name="id">2</field>
        <field name="type">entity</field>
        <field name="name">Texaco</field>
        <field name="country">de</field>
        <doc>
         <field name="id">N0011</field>
         <field name="parentId">2</field>
         <field name="type">alternate</field>
         <field name="alias">Texxo</field>
        </doc>
        <doc>
         <field name="id">N0012</field>
         <field name="parentId">2</field>
         <field name="type">alternate</field>
         <field name="alias">Texoco</field>
        </doc>
       </doc>
      </add>
      

      ==
      The streaming query to execute.
      Simplified, as the mainsearch usually does more complext stuff.
      ==

       fetch( 
       names,
       search(names,
       qt="/select",
       q="*:*",
       fq="type:alternate",
       fl="parentId, alias",
       rows=10,
       sort="parentId asc"), 
       on="parentId=id",
       fl="name,country"
       )
      

      ==

      Result:

      • Collection of attributes: parentId, alias

      Expected result:

      • Collection of attributes: parentId, alias, name, country

      Attachments

        1. names.zip
          2 kB
          Dariusz Wojtas

        Issue Links

          Activity

            People

              epugh Eric Pugh
              dwojtas@gmail.com Dariusz Wojtas
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated: