Code Monkey home page Code Monkey logo

Comments (29)

AllKai avatar AllKai commented on June 3, 2024 1

what gcc, make, cmake, glibc version do you have? what glibc version do you have on your server?

This is an issue with the redis-stack team's image. I'm planning to switch from a cluster setup to a standalone one for now
https://github.com/redis-stack/redis-stack

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

I found a configuration item in the official documentation called OSS_GLOBAL_PASSWORD. Since keys are distributed across different node slots in the cluster, and because my cluster has a password, the missing query results could be due to RediSearch being unable to access data from other nodes. However, after configuring OSS_GLOBAL_PASSWORD, my Redis pod failed to start.

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

Here is one of my JSON structured data, and key is DRIVE-INFO:1730152758256041984

{
  "channelId": "ae9096fffe424cd0-00000001-00001578-f8fc94fbbe8f5e96-d952e41e",
  "sessionToken": "53889412a3454de1940686c0bf90dbc4",
  "driverId": "1730152758256041984",
  "location": "112.534329,37.836268",
  "driverPhoneNumber": "18636110528",
  "surname": "郭",
  "status": 0,
  "cityOrderId": null,
  "region": "1401",
  "holdLine": "-1",
  "typeOfBoarding": -1,
  "driveInfo": {
    "carId": "1730166228145836032",
    "carNumber": "晋ARR922",
    "carColor": "黑色",
    "carBrand": "大众汽车牌SVW71411AM",
    "carType": "小型杨车",
    "carSeat": 4,
    "driverType": 2,
    "driveAge": 5,
    "summaryId": "1776925166400610304",
    "lineIds": [
      "1735177506354573312"
    ],
    "departureStartTime": "10:00:00",
    "departureEndTime": "12:00:00"
  },
  "serviceId": "1739920189715275776",
  "ordersInfo": null,
  "reserveOrderIds": null,
  "remainingSeats": 4,
  "intercityReserveOrderInfo": {},
  "offlineOrders": {},
  "offlineCancelOrderIds": []
}

I created an index for this:

FT.CREATE IDX:ENGINE-DRIVE-SEARCH ON JSON PREFIX 1 DRIVE-INFO: SCHEMA
    $.driverId AS driverId TAG
    $.location AS location GEO SORTABLE
    $.status AS status NUMERIC
    $.region AS region TAG
    $.holdLine AS holdLine TAG
    $.typeOfBoarding AS typeOfBoarding NUMERIC
    $.remainingSeats AS remainingSeats NUMERIC
    $.driveInfo.carSeat AS carSeat NUMERIC
    $.driveInfo.driverType AS driverType NUMERIC
    $.driveInfo.lineIds.* AS lineIds TAG
image

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

Here is one of my JSON structured data, and key is DRIVE-INFO:1730152758256041984

{
  "channelId": "ae9096fffe424cd0-00000001-00001578-f8fc94fbbe8f5e96-d952e41e",
  "sessionToken": "53889412a3454de1940686c0bf90dbc4",
  "driverId": "1730152758256041984",
  "location": "112.534329,37.836268",
  "driverPhoneNumber": "18636110528",
  "surname": "郭",
  "status": 0,
  "cityOrderId": null,
  "region": "1401",
  "holdLine": "-1",
  "typeOfBoarding": -1,
  "driveInfo": {
    "carId": "1730166228145836032",
    "carNumber": "晋ARR922",
    "carColor": "黑色",
    "carBrand": "大众汽车牌SVW71411AM",
    "carType": "小型杨车",
    "carSeat": 4,
    "driverType": 2,
    "driveAge": 5,
    "summaryId": "1776925166400610304",
    "lineIds": [
      "1735177506354573312"
    ],
    "departureStartTime": "10:00:00",
    "departureEndTime": "12:00:00"
  },
  "serviceId": "1739920189715275776",
  "ordersInfo": null,
  "reserveOrderIds": null,
  "remainingSeats": 4,
  "intercityReserveOrderInfo": {},
  "offlineOrders": {},
  "offlineCancelOrderIds": []
}

I created an index for this:

FT.CREATE IDX:ENGINE-DRIVE-SEARCH ON JSON PREFIX 1 DRIVE-INFO: SCHEMA
    $.driverId AS driverId TAG
    $.location AS location GEO SORTABLE
    $.status AS status NUMERIC
    $.region AS region TAG
    $.holdLine AS holdLine TAG
    $.typeOfBoarding AS typeOfBoarding NUMERIC
    $.remainingSeats AS remainingSeats NUMERIC
    $.driveInfo.carSeat AS carSeat NUMERIC
    $.driveInfo.driverType AS driverType NUMERIC
    $.driveInfo.lineIds.* AS lineIds TAG
image

But in the single-node redis-stack with the same image, I can search for the data

from redisearch.

GuyAv46 avatar GuyAv46 commented on June 3, 2024

Hi :)
Are the different redis instances connected to each other in a redis cluster? I believe the available docker images don't contain the cluster options and components.
What is the error message you get when launching with the OSS_GLOBAL_PASS configuration?

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

Hi :)
Are the different redis instances connected to each other in a redis cluster? I believe the available docker images don't contain the cluster options and components.
What is the error message you get when launching with the OSS_GLOBAL_PASS configuration?

Our cluster status is normal, as all our microservices except for accessing Redissearch have encountered no errors with any read/write requests to Redis. When I add loadmodule /opt/redis-stack/lib/redisearch.so OSS_GLOBAL_PASSWORD meichengrediscluster to my redis.conf, I receive an error message indicating that the OSS_GLOBAL_PASSWORD configuration item cannot be found when starting up. Similarly, when I use the FT.CONFIG.HELP OSS_GLOBAL_PASSWORD command to retrieve this configuration item, an empty list is returned.

from redisearch.

GuyAv46 avatar GuyAv46 commented on June 3, 2024

So this confirms you don't have a ReiSearch instance that supports clustering and cross-cluster communication for searching. you can build RediSearch from source with clustering support by running make build COORD=1.
Hope this helps

from redisearch.

GuyAv46 avatar GuyAv46 commented on June 3, 2024

and on a side note, if you want to search your Chinese TEXT fields, you might want to declare the index language as Chinese

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

So this confirms you don't have a ReiSearch instance that supports clustering and cross-cluster communication for searching. you can build RediSearch from source with clustering support by running make build COORD=1.
Hope this helps

Could you please provide more detailed instructions on how to proceed?

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

and on a side note, if you want to search your Chinese TEXT fields, you might want to declare the index language as Chinese

I understand. The main issue here lies in incomplete data retrieval during the queries

from redisearch.

GuyAv46 avatar GuyAv46 commented on June 3, 2024

On a machine with the right OS and architecture for your docker:

  1. Clone this Repository (recursively)
  2. If you don't have boost installed, you can run (from the project root directory) cd .install && ./install_boost.sh 1.83.0 && cd ..
  3. run make build COORD=1.

you will get the library binary redisearch.so that supports cluster searches. From here you will have to prepare your docker-compose steps or build your own docker image. I'm no expert but I saw many guides on the internet for how to do so.

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

On a machine with the right OS and architecture for your docker:

  1. Clone this Repository (recursively)
  2. If you don't have boost installed, you can run (from the project root directory) cd .install && ./install_boost.sh 1.83.0 && cd ..
  3. run make build COORD=1.

you will get the library binary redisearch.so that supports cluster searches. From here you will have to prepare your docker-compose steps or build your own docker image. I'm no expert but I saw many guides on the internet for how to do so.

Alright, I'll give it a try.

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

make build COORD=1

make: /bin/platform: No such file or directory
Makefile:288: /rules: No such file or directory
make: *** No rule to make target '/rules'. Stop.

What is the situation?

from redisearch.

GuyAv46 avatar GuyAv46 commented on June 3, 2024

have you cloned the repository recursively? git clone --recurse-submodules
If not, try running make fetch or cloning again from scratch

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

have you cloned the repository recursively? git clone --recurse-submodules If not, try running make fetch or cloning again from scratch

I'm now back to normal, but when I run make, I can't find the 'range' library. Which version of g++ are you using?

from redisearch.

GuyAv46 avatar GuyAv46 commented on June 3, 2024

On CI we test with 10 and above. 9 might work as well

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

On CI we test with 10 and above. 9 might work as well

After successfully executing make build COORD=1, where is the compiled redisearch.so file located? Additionally, I noticed in other questions that someone mentioned the oss-module.so file is also needed to support Redis clustering. Is that correct?

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

On CI we test with 10 and above. 9 might work as well

After successfully executing make build COORD=1, where is the compiled redisearch.so file located? Additionally, I noticed in other questions that someone mentioned the oss-module.so file is also needed to support Redis clustering. Is that correct?

image

from redisearch.

GuyAv46 avatar GuyAv46 commented on June 3, 2024

it should be under bin/linux-x64-release/coord-oss/module-oss.so or similar. seems like your subdirectory was named --release.
You need this file instead of the bin/linux-x64-release/search/redisearch.so

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

it should be under bin/linux-x64-release/coord-oss/module-oss.so or similar. seems like your subdirectory was named --release. You need this file instead of the bin/linux-x64-release/search/redisearch.so

So, do I need to add another line "--loadmodule module-oss.so OSS_GLOBAL_PASSWORD xxx" to the configuration file?

from redisearch.

GuyAv46 avatar GuyAv46 commented on June 3, 2024

should be enough. Let me know if you manage to search now

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

should be enough. Let me know if you manage to search now

image image

why?

from redisearch.

GuyAv46 avatar GuyAv46 commented on June 3, 2024

odd. Are you sure the container copied the file? is the ls output of the container? is it working with another module(without the configuration)?

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

odd. Are you sure the container copied the file? is the ls output of the container? is it working with another module(without the configuration)?

The system I compile on is ARM architecture, while the server is x86. Will this have an impact?

from redisearch.

GuyAv46 avatar GuyAv46 commented on June 3, 2024

You should build the module on the same architecture and OS as your server

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

You should build the module on the same architecture and OS as your server

I compiled using the same architecture, but it still doesn't work. However, compared to last time, it seems that there is an additional error message containing libcrypto.so.1.1:

My file directory is correct, and the owner, group, and permissions are the same as the other module files in the container.

image

from redisearch.

GuyAv46 avatar GuyAv46 commented on June 3, 2024

Do you have SSL 1.1 installed on the server? you can check with openssl version.

from redisearch.

AllKai avatar AllKai commented on June 3, 2024

Do you have SSL 1.1 installed on the server? you can check with openssl version.

I've resolved it, but now when loading, it reports a new error: /opt/redis-stack/lib/module-oss.so failed to load: /opt/redis-stack/lib/module-oss.so: cannot dynamically load position-independent executable

from redisearch.

GuyAv46 avatar GuyAv46 commented on June 3, 2024

what gcc, make, cmake, glibc version do you have? what glibc version do you have on your server?

from redisearch.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.