Details

    • Branch Version/s:
      6.1.x
    • Backported to Branch:
      Committed
    • Story Points:
      2
    • Fix Priority:
      4
    • Similar Issues:
      Show 5 results 

      Description

      Description
      With over 30 users, when SOLR searching for all users, only 29 are returned.
      A MySQL query of the database shows all users present.

      The query internally passed to SOLR is: (((+(entryClassName:com.liferay.portal.model.User) +(status:0))))
      which becomes:
      {status=0,QTime=2,params={sort=lastName_sortable asc,start=0,q=(((+(entryClassName:com.liferay.portal.model.User) +(status:0)))) +companyId:10154,facet.limit=-1,wt=javabin,rows=20,version=1}}

      When I run the following query directly on the SOLR server, I get all expected results:

      http://localhost:8080/solr/select?sort=lastName_sortable%20asc&start=0&q=+(+((+(entryClassName:com.liferay.portal.model.User)%20+(status:0))))%20+companyId:10154&facet.limit=-1&wt=javabin&rows=20&version=1

      Steps to Reproduce
      1. Download and install Liferay bundle and Solr 1.4.1
      2. Configure Solr with your Liferay portal.
      3. Create 30 users or more
      4. Navigate to Control Panel->Users and Organizations->Search all users

      Result
      Only 29 users are shown as existing.

        Issue Links

          Activity

          Hide
          Eric Chin added a comment -

          Not all entries are showing up right now because the indexes are being updated with the wrong status.

          The reason the Liferay stores an index with the wrong status is because when a user is added, it updates the index 3 times. It only updates the status to approved one time. So, when the index is updating there is a race condition between the threads.

          The fix for this issue sets the thread pool to 1, so that the index gets updated in order.

          Eric

          Show
          Eric Chin added a comment - Not all entries are showing up right now because the indexes are being updated with the wrong status. The reason the Liferay stores an index with the wrong status is because when a user is added, it updates the index 3 times. It only updates the status to approved one time. So, when the index is updating there is a race condition between the threads. The fix for this issue sets the thread pool to 1, so that the index gets updated in order. Eric
          Hide
          Esther Sanz added a comment -

          Committed

          Show
          Esther Sanz added a comment - Committed

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Days since last comment:
                2 weeks, 5 days ago

                Development

                  Subcomponents

                    Structure Helper Panel